OpenCV如何利用python實(shí)現(xiàn)圖像的直方圖均衡化?針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
成都創(chuàng)新互聯(lián)是一家專(zhuān)注于網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),射陽(yáng)網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:射陽(yáng)等地區(qū)。射陽(yáng)做網(wǎng)站價(jià)格咨詢(xún):135182197921.直方圖
直方圖: (1) 圖像中不同像素等級(jí)出現(xiàn)的次數(shù) (2) 圖像中具有不同等級(jí)的像素關(guān)于總像素?cái)?shù)目的比值。
我們使用cv2.calcHist
方法得到直方圖
cv2.calcHist(images, channels, mask, histSize, ranges):
-img: 圖像
-channels: 選取圖像的哪個(gè)通道
-histSize: 直方圖大小
-ranges: 直方圖范圍
cv2.minMaxLoc:
返回直方圖的大最小值,以及他們的索引
import cv2 import numpy as np def ImageHist(image, type): color = (255, 255,255) windowName = 'Gray' if type == 1: #判斷通道顏色類(lèi)型 B-G-R color = (255, 0, 0) windowName = 'B hist' elif type == 2: color = (0,255,0) windowName = 'G hist' else: color = (0,0,255) # 得到直方圖 hist = cv2.calcHist([image],[0],None,[256],[0,255]) # 得到大值和最小值 minV,maxV,minL,maxL = cv2.minMaxLoc(hist) histImg = np.zeros([256,256,3],np.uint8) #直方圖歸一化 for h in range(256): interNormal = int(hist[h] / maxV * 256) cv2.line(histImg, (h, 256), (h, 256 - interNormal), color) cv2.imshow(windowName, histImg) return histImg img = cv2.imread('img.jpg', 1) channels = cv2.split(img) # R-G-B for i in range(3): ImageHist(channels[i], 1 + i) cv2.waitKey(0)