欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決plt.imshow顯示cv2.imread讀取的圖像有色差發(fā)藍的四種方法問題

 更新時間:2022年04月19日 10:49:12   作者:善良995  
本文主要介紹了解決plt.imshow顯示cv2.imread讀取的圖像有色差發(fā)藍的四種方法問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

原圖

在這里插入圖片描述

一、出現色差代碼

1.1 顯示彩色圖像出現色差

import cv2
import numpy as np
import matplotlib.pyplot as plt

img = cv2.imread('dog.jpg')
plt.xticks([]), plt.yticks([]) 		#隱藏x軸和y軸

plt.imshow(img)

運行結果:

在這里插入圖片描述

1.2 顯示灰度圖像出現色差

img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

plt.xticks([]), plt.yticks([]) # 隱藏x和y軸

plt.imshow(img_gray)

運行結果:

在這里插入圖片描述

二、解釋原因

2.1 彩色圖像出現色差原因

使用cv2.imread()讀取圖像時,默認彩色圖像的三通道順序為B、G、R,這與我們所熟知的RGB中的R通道和B通道正好互換位置了。
而使用plt.imshow()函數卻默認顯示圖像的通道順序為R、G、B,導致圖像出現色差發(fā)藍。

2.2 灰度圖像出現色差原因

那么為什么plt.imshow()顯示灰度圖(只有一個通道)還會出現色差呢?
上一段講過,這是因為plt.imshow()函數默認顯示三通道圖像,把灰度圖當作彩色圖顯示出來了,所以出現了發(fā)藍的現象。

三、解決

3.1 解決彩色圖像出現色差問題

3.1.1 方法1

img = cv2.imread('dog.jpg')		#讀取通道順序為B、G、R
b,g,r = cv2.split(img)			#分別提取B、G、R通道
img_new1 = cv2.merge([r,g,b])	#重新組合為R、G、B

plt.xticks([]), plt.yticks([]) # 隱藏x和y軸

plt.imshow(img_new1)

運行結果:

在這里插入圖片描述

3.1.2 方法2

img = cv2.imread('dog.jpg')		#讀取通道順序為B、G、R
#img[:,:,0]表示圖片的藍色通道,對一個字符串s進行翻轉用的是s[::-1],同樣img[:,:,::-1]就表示BGR通道翻轉,變成RGB
img_new2 = img[:, :, ::-1]

plt.xticks([]), plt.yticks([]) # 隱藏x和y軸

plt.imshow(img_new2)

運行結果:

在這里插入圖片描述

3.2 解決灰度圖像出現色差問題

3.2.1 方法1

img = cv2.imread('dog.jpg')
img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)		#轉換為灰度圖

plt.xticks([]), plt.yticks([]) # 隱藏x和y軸

plt.imshow(img_gray,cmap='gray')

運行結果:

在這里插入圖片描述

3.2.2 方法2

#cv2.imread()第二參數為0,直接將彩色圖像轉換為灰度圖像
img = cv2.imread('dog.jpg',0)	

plt.xticks([]), plt.yticks([]) # 隱藏x和y軸

plt.imshow(img_gray,cmap='gray')

運行結果:

在這里插入圖片描述

 到此這篇關于解決plt.imshow顯示cv2.imread讀取的圖像有色差發(fā)藍的四種方法問題的文章就介紹到這了,更多相關plt.imshow顯示cv2.imread讀取內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python中可以用三種方法判斷文件是否存在

    Python中可以用三種方法判斷文件是否存在

    本文主要介紹了Python中可以用三種方法判斷文件是否存在,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • python正則表達式的懶惰匹配和貪婪匹配說明

    python正則表達式的懶惰匹配和貪婪匹配說明

    這篇文章主要介紹了python正則表達式的懶惰匹配和貪婪匹配說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • jupyter notebook出現In[*]的問題及解決

    jupyter notebook出現In[*]的問題及解決

    這篇文章主要介紹了jupyter notebook出現In[*]的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • python3?字符串str和bytes相互轉換

    python3?字符串str和bytes相互轉換

    這篇文章主要介紹了python3?字符串str和bytes相互轉換,在文件傳輸過程中,通常使用bytes格式的數據流,而代碼中通常用str類型,因此str和bytes的相互轉換就尤為重要,下文詳細介紹需要的小伙伴可以參考一下
    2022-03-03
  • python?中賦值,深拷貝,淺拷貝的區(qū)別

    python?中賦值,深拷貝,淺拷貝的區(qū)別

    這篇文章主要介紹了python?中賦值,深拷貝,淺拷貝的區(qū)別,下文利用實例對三者進行詳細的解析,具有一的的參考價值,需要的小伙伴可以參考一下,希望對你的學習有所幫助
    2022-03-03
  • Python 網絡編程之UDP發(fā)送接收數據功能示例【基于socket套接字】

    Python 網絡編程之UDP發(fā)送接收數據功能示例【基于socket套接字】

    這篇文章主要介紹了Python 網絡編程之UDP發(fā)送接收數據功能,結合實例形式分析了Python使用socket套接字實現基于UDP協(xié)議的數據發(fā)送端與接收端相關操作技巧,需要的朋友可以參考下
    2019-10-10
  • python append、extend與insert的區(qū)別

    python append、extend與insert的區(qū)別

    這篇文章主要介紹了python append、extend與insert的區(qū)別的相關資料,初學者對這幾個概念經常搞混,這里就幫大家理清楚,需要的朋友可以參考下
    2016-10-10
  • 在windows系統(tǒng)中實現python3安裝lxml

    在windows系統(tǒng)中實現python3安裝lxml

    本文主要給大家簡單介紹了下在windows以及l(fā)inux系統(tǒng)中使用Python安裝LXML模塊的教程,非常簡單實用,有需要的小伙伴可以參考下
    2016-03-03
  • Pandas實現兩個表的連接功能的方法詳解

    Pandas實現兩個表的連接功能的方法詳解

    這篇文章主要和大家一起說說pandas的兩個表的連接技能merge,也就是根據一個表的條件去匹配另一個表的內容,感興趣的可以跟隨小編一起學習一下
    2022-09-09
  • python RabbitMQ 使用詳細介紹(小結)

    python RabbitMQ 使用詳細介紹(小結)

    這篇文章主要介紹了python RabbitMQ 使用詳細介紹(小結),詳細的介紹了RabbitMQ的概念以及使用,對學習RabbitMQ有一定的幫助,非常具有實用價值,需要的朋友可以參考下
    2018-11-11

最新評論