opencv筆記(6):彩色圖像直方圖

生活就像大海,我就像一條鹹魚,在浩瀚的海洋中邊浪邊學,這是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

浪學
相關文章
相關標籤/搜索