直方图均衡化的基本原理:对在图像中像素个数多的灰度值(即对画面起主要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并,从而增大对比度,使图像清晰,达到增强的目的。 均衡化函数: cv2.equalizeHist(img) img:指需要均衡化的原图像,灰度图像。返回值为均衡化后的图像。 3....
template=cv2.imread('C:/Users/59925/Desktop/pytest/pics/eye.jpg')#把图片读取成灰度图 #统计直方图。通过012选择BGR通道,None,不选择图片掩码,横坐标bins(位数)为256组,[0,256]像素值范围 plt.hist(img.ravel(),256)#把3维原图降成一维 256表示直方图的箱数 #plt.title('img.ravel') #plt.show() ...
网格为3*3clahe = cv2.createCLAHE(clipLimit=2,tileGridSize=(3,3))# 生成自适应均衡化后的图像res_clahe = clahe.apply(img)# 将三张图象组合在一起看一下区别res = np.hstack((img,equ,res_clahe))cv_show('res',res)
整幅图像会被分成很多小块,这些小块被称为“tiles”。然后再对每一个小块分别进行直方图均衡化。如果有噪声的话,噪声会被放大。为了避免这种情况的出现要使用对比度限制。对于每个小块来说,如果直方图中的 bin 超过对比度的上限的话,就把 其中的像素点均匀分散到其他 bins 中,然后在进行直方图均衡化。 cv.create...
Opencv中还有一种直方图均衡化,它是一种局部直方图均衡化,也就是是说把整个图像分成许多小块(比如按10*10作为一个小块),那么对每个小块进行均衡化。 全局的对比度太强 二:自适应的局部的直方图均衡化createCLAHE def clahe_demo(image): #OpenCV直方图均衡化都是基于灰度图像 ...
2.1 全局直方图均衡化与自适应均衡化 2.2 使用查找表来拉伸直方图 2.3 直方图均衡化—RGB2YCrCb 一、颜色直方图 1.1 使用opencv展示直方图 函数 cv2.calcHist(image,channels,mask,histSize,ranges) -> list image: array为待计算直方图的图像channels:list 通道,RGB图像可以指定[0,1,2],灰度图像只有[0],mask掩码...
CLAHE是全局直方图均衡化的升级版本,CLAHE首先对图片做了分块的操作,也就是划分到多少行,多少列,每一个小块单独做 全局直方图均衡化。但是每一个小块做直方图均衡化,就存在噪声的问题,所以还限制了对比度,也就是对直方图做了裁剪和均衡,直方图上方>某个threshold的区间,会被分配到其他的格子。
因此,为了解决这个问题,采用了自适应直方图均衡化。在这个过程中,图像被分成小块,称为 "瓦片"(OpenCV中瓦片大小默认为8x8)。然后这些块中的每一个都像往常一样被直方图均衡化。因此,在一个小区域内,直方图将被限制在一个小区域内(除非有噪声)。如果有噪音,它就会被放大。为了避免这种情况,采用了对比度限制。如果...
直方图均衡化会导致可能会太暗或太亮,丢失很多信息,这时就要用到自适应的直方图均衡化。自适应的直方图均衡化将图像分成很多个小份(tiles),然后对每个小份的图像进行直方图均衡化。 同时具有对比度限制(bin限制),当某个直方图块的对比度过大时,将过大的tiles分散到其他的tiles中,使得其不至于出现过曝。 最后为了取...