cv2.calHist(images, channels, mask, histSize, ranges)
- images:原图图像为uint8或float,当传入函数时,用括号[]
- channels:灰度图:[0] 彩色图:[0][1][2]分别对应着BGR
- mask:掩模图像
- histSize:BIN的数目,用中括号
- ranges:像素值范围
img = cv2.imread('cat1.png', 0) #0表示灰度图
hist = cv2.calcHist([img], [0], None, [256], [0, 256])
plt.hist(img.ravel(), 256)
plt.show()
![](https://img-blog.csdnimg.cn/f86bffd1ef7544119bea02839ddcaafe.png)
img = cv2.imread('cat.png')
color = ('b', 'g', 'r')
for i, col in enumerate(color):
histr = cv2.calcHist([img], [i], None, [256], [0, 256])
plt.plot(histr, color = col)
plt.xlim([0, 256])
mask操作
#创建mask
mask = np.zeros(img.shape[:2], np.uint8)
mask[100:300, 100:400] = 255
img = cv2.imread('cat.png', 0)
masked_img = cv2.bitwise_and(img, img, mask=mask)
hist_full = cv2.calcHist([img], [0], None, [256], [0, 256])
hist_mask = cv2.calcHist([img], [0], mask, [256], [0, 256])
plt.subplot(221), plt.imshow(img, 'gray')
plt.subplot(222), plt.imshow(mask, 'gray')
plt.subplot(223), plt.imshow(masked_img, 'gray')
plt.subplot(224), plt.plot(hist_full), plt.plot(hist_mask)
plt.xlim([0, 256])
plt.show()
![](https://img-blog.csdnimg.cn/7d3628d9ceab461598bbfdd2243a70ea.png)