灰度直方图
原理
直方图的计算和绘制
cv.calcHist(images,channels,mask,histsize,ranges[,hist[,accumlate]])
import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt
img=cv.imread('./汪学长的随堂资料/4/图像操作/cat.jpg',0)
hist=cv.calcHist([img],[0],None,[256],[0,256])
plt.figure(figsize=(10,8))
plt.plot(hist)
plt.show()
掩模的应用
mask=np.zeros(img.shape[:2],np.uint8)
mask[50:200,50:200]=1
mask_img=cv.bitwise_and(img,img,mask=mask)
plt.imshow(mask_img,cmap='gray')
mask_hist=cv.calcHist([img],[0],mask,[256],[0,256])
plt.plot(mask_hist)
plt.show()
直方图均衡化
原理与应用
dst=cv.equalizeHist(img)
dst=cv.equalizeHist(img)
plt.imshow(dst,cmap='gray')
自适应的直方图均衡化
cv.createCLAHE(clipLimit,tileGridSize)
cl=cv.createCLAHE(2.0,(8,8))
clahe=cl.apply(img)
plt.imshow(clahe,cmap='gray')