1. 程式人生 > 程式設計 >Python讀取影象並顯示灰度圖的實現

Python讀取影象並顯示灰度圖的實現

python讀取影象

原圖:

Python讀取影象並顯示灰度圖的實現

import cv2 # 利用opencv讀取影象
import numpy as np
# 利用matplotlib顯示影象
import matplotlib.pyplot as plt 

img = cv2.imread("./lena.png") #讀取影象
# 顯示影象
plt.imshow(img)
plt.axis('off')
plt.show()

效果:

Python讀取影象並顯示灰度圖的實現

問:為什麼畫出的影象和原圖有色差呢?
答:opencv的顏色通道順序為[B,G,R],而matplotlib的顏色通道順序為[R,B]。
解決方案:把R和B的位置調換一下

img = img[:,:,(2,1,0)]

再次顯示影象
效果:(自己做了就知道了)

影象灰度化演算法
Gray = 0.299R+0.587G+0.114*B

r,g,b = [img[:,i] for i in range(3)]
img_gray = r*0.299+g*0.587+b*0.114

再次顯示影象

plt.imshow(img_gray)
plt.axis('off')
plt.show()

Python讀取影象並顯示灰度圖的實現

問:為什麼她綠了?
答:因為我們還是直接使用plt顯示影象,它預設使用三通道顯示影象。
解決方案:在plt.imshow()新增引數

plt.imshow(img_gray,cmap="gray")
plt.axis('off')
plt.show()

效果:

在這裡插入圖片描述

到此這篇關於Python讀取影象並顯示灰度圖的實現的文章就介紹到這了,更多相關Python 灰度圖內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!