对比度增强

 

对比度增强的常见方法:线性变换、分段线性变换、伽马变换、直方图正规化、全局直方图均衡化、局部自适应直方图均衡化(限制对比度的自适应直方图均衡化)

 

灰度直方图:概括了一幅图像的灰度级信息。

灰度直方图横坐标为灰度级范围即0-255,纵坐标为每个灰度值在图像中出现的次数

 

线性变换:

即通过y=ax+b的线性变换来改变图像的对比度和亮度。x为原像素值,改变a便改变对比度,改变b为改变图像的亮度。

与之类似的还有分段线性变换,分段线性变换可以在不同灰度值范围内做不同的灰度值调整,更好的适应图像增强的需求。

 

直方图正规化:

直方图正规化是自动选取上述线性变换中a和b的方法,正规化后的直方图可以将灰度级范围较小的区间如0-150拉伸到0-255的灰度级空间,公式如下:

python opencv对比度增强 opencv图像对比度增强_直方图均衡化

原始灰度级范围为I[min,max],转化后灰度级范围为O[min,max]。

a,b为:

python opencv对比度增强 opencv图像对比度增强_线性变换_02

即直方图均衡化相当于自动计算了a,b的线性变换。

 

伽马变换

伽马变换就是首先进行灰度值的归一化,对于8位图来说,除以255即可。

然后令

 

全局直方图均衡化

 

实质上是对图像进行非线性拉伸,使一定范围内的像素值个数大致相等。

python opencv对比度增强 opencv图像对比度增强_直方图均衡化_03

python opencv对比度增强 opencv图像对比度增强_直方图均衡化_04

效果如上图所示,直方图均衡化之后波谷部分的像素值增加,降低对比度,波峰部分像素值降低,增加对比度。

 

直方图均衡化后的结果易受噪声,光照和阴影变换的影响,噪声对所得图像的影响非常大。

 

限制对比度的自适应直方图均衡化

 

限制对比度的自适应直方图均衡化时为了防止均衡化处理后噪声被放大,亮区域可能会损失信息的情况出现。

为了出现这种情况,需预设一个阈值来限制对比度,假设“限制对比度“为40,如果有值为45,则会被裁剪,将裁剪后的值均匀的分布到每一个bin,如下所示:

python opencv对比度增强 opencv图像对比度增强_直方图均衡化_05