生活就像大海,我就像一條鹹魚,在浩瀚的海洋中邊浪邊學,這是opencv筆記系列中的「彩色圖像直方圖」。更多可參觀[浪學]公衆號~bash
顏色直方圖是在許多圖像檢索系統中被普遍採用的顏色特徵。它所描述的是不一樣色彩在整幅圖像中所佔的比例。函數
世間萬圖,皆有直方圖。如何使用opencv來顯示彩色圖像直方圖呢?這一篇文章以很鹹魚的方式把它們記錄下來。學習
原圖仍是那一個它:ui
編寫一個函數,根據圖像獲得各個顏色通道的直方圖代碼spa
def ImageHist(image, type):
color = (255,255,255)
windowName = 'Gray'
if type==31:
color = (255,0,0)
windowName = 'B Hist'
elif type==32:
color = (0,255,0)
windowName = 'G Hist'
elif type==33:
color = (0,0,255)
windowName = 'R Hist'
#
hist = cv2.calcHist([image],[0],None,[256],[0.0,255.0])
minV,maxV,minL,maxL = cv2.minMaxLoc(hist)
histImg = np.zeros([256,256,3],np.uint8)
for h in range(256):
intenNormal = int(hist[h]*256/maxV)
cv2.line(histImg,(h,256),(h,256-intenNormal),color)
cv2.imshow(windowName, histImg)
return histImg
複製代碼
讀取圖像顯示直方圖3d
img = cv2.imread('image.png',1)
channels = cv2.split(img) # B G R
for i in range(3):
ImageHist(channels[i],31+i)
cv2.waitKey(0)
複製代碼
輸出直方圖以下code
更多歡迎來個人公衆號一塊兒學習orm