Python opencv局部直方图均衡增强

        opencv直方图均衡包含两种,一种是对全图进行直方图均衡,另一种是对局部进行直方图均衡,也称为自适应直方图均衡。直方图均衡是让图像的像素分布更加均匀,一般可以使图片更亮、解决偏色问题、增加局部细节等。

1 全局直方图均衡

        全局直方图均衡的函数为cv2.equalizeHist(img)。示例代码如下:

import cv2

if __name__ == '__main__':
    image = cv2.imread('lena.jpg', 0)
    eh = cv2.equalizeHist(image)
    cv2.imshow('image', image)
    cv2.imshow('eh', eh)
    cv2.waitKey(0)

        效果如下图所示,可见处理后图片亮度和局部细节都有明显增加。

Python opencv局部直方图均衡增强_第1张图片

2 自适应直方图均衡

        自适应直方图均衡的函数为cv2.createCLAHE(clipLimit=8.0, titeGridSize=(8, 8)) ,clipLimit颜色对比度的阈值。tileGridSize进行像素均衡化的网格大小,即在多少网格下进行直方图的均衡化操作。

        通过实验对比,clipLimit越大表示局部细节对比度越明显。

        tileGridSize越大图片越亮,过大会导致细节丢失。

        示例代码如下:

import cv2

if __name__ == '__main__':
    image = cv2.imread('lena.jpg', 0)
    cla = cv2.createCLAHE(clipLimit=8.0, tileGridSize=(8, 8)).apply(image)
    print(cla.shape)
    cv2.imshow('image', image)
    cv2.imshow('cla', cla)
    cv2.waitKey(0)

        效果如下图所示,局部细节更加明显。

tileGridSize=8

Python opencv局部直方图均衡增强_第2张图片

 tileGridSize=80

Python opencv局部直方图均衡增强_第3张图片

你可能感兴趣的:(opencv,python,直方图均衡,自适应均衡,对比度提升,opencv,python)