对比度调整的各种方法(一)

一.基于直方图的对比度调整方法

1.直方图均衡化

直方图均衡化通过使用累积函数对灰度值进行“调整”以实现对比度的增强。直方图均衡化处理的“中心思想”是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。直方图均衡化就是把给定图像的直方图分布改变成“均匀”分布直方图分布。

缺点: 
  1)变换后图像的灰度级减少,某些细节消失; 
  2)某些图像,如直方图有高峰,经处理后对比度不自然的过分增强。 

算法具体:

  1. 根据图像灰度计算灰度概率密度函数PDF(概率密度函数)
  2. 计算累积概率分布函数CDF(累积分布函数)
  3. 将CDF归一化到原图灰度取值范围,如[0,255]。
  4. 之后CDF四舍五入取整,得到灰度转换函数sk=T(rk)sk=T(rk)。
  5. 将CDF作为转换函数,将灰度为rkrk的点转换为sksk灰度。、

2.AHE

自适应直方图均衡化(AHE)用来提升图像的对比度的一种计算机图像处理技术。和普通的直方图均衡算法不同,AHE算法通过计算图像的局部直方图,然后重新分布亮度来来改变图像对比度。因此,该算法更适合于改进图像的局部对比度以及获得更多的图像细节。 不过,AHE有过度放大图像中相同区域的噪音的问题。

2.1具体算法:

AHE算法通过对局部区域执行响应的直方图均衡来改变上述问题。该算法首先被开发出来适用于改进航天器驾驶舱的显示效果。其最简单的形式,就是每个像素通过其周边一个矩形范围内的像素的直方图进行均衡化。均衡的方式则完全同普通的均衡化算法:变换函数同像素周边的累积直方图函数(CDF)成比例。

       图像边缘的像素需要特殊处理,因为边缘像素的领域不完全在图像内部。这个通过镜像图像边缘的行像素或列像素来解决。直接复制边缘的像素进行扩充是不合适的。因为这会导致带有剑锋的领域直方图。

 2.2 AHE的属性

  •  领域的大小是该方法的一个参数。领域小,对比度得到增强,领域大,则对比度降低。      

 当某个区域包含的像素值非常相似,其直方图就会尖状化,此时直方图的变换函数会将一个很窄范围内的像素映射到整个像素范围。这将使得某些平坦区域中的少量噪音经AHE处理后过度放大。

3.CLAHE 

3.1 原理及其算法

在CLAHE中,对于每个小区域都必须使用对比度限幅。CLAHE主要是用来克服AHE的过度放大噪音的问题。 这主要是通过限制AHE算法的对比提高程度来达到的。在指定的像素值周边的对比度放大主要是由变换函数的斜度决定的。这个斜度和领域的累积直方图的斜度成比例。CLAHE通过在计算CDF前用预先定义的阈值来裁剪直方图以达到限制放大幅度的目的。这限制了CDF的斜度因此,也限制了变换函数的斜度。直方图被裁剪的值,也就是所谓的裁剪限幅,取决于直方图的分布因此也取决于领域大小的取值。

 通常,直接忽略掉那些超出直方图裁剪限幅的部分是不好的,而应该将这些裁剪掉的部分均匀的分布到直方图的其他部分。如下图所示。

       Clahe-redist.svg

如上所述的直接的自适应直方图,不管是否带有对比度限制,都需要对图像中的每个像素计算器领域直方图以及对应的变换函数,这使得算法及其耗时。

3.2 插值加速算法

        而插值使得上述算法效率上有极大的提升,并且质量上没有下降。首先,将图像均匀分成等份矩形大小,如下图的右侧部分所示(8行8列64个块是常用的选择)。然后计算个块的直方图、CDF以及对应的变换函数。这个变换函数对于块的中心像素(下图左侧部分的黑色小方块)是完全符合原始定义的。而其他的像素通过哪些于其临近的四个块的变换函数插值获取。位于图中蓝色阴影部分的像素采用双线性查插值,而位于便于边缘的(绿色阴影)部分采用线性插值,角点处(红色阴影处)直接使用块所在的变换函数。

Clahe-tileinterpol.svg

除此之外还有:

BBHE (mean brightness preserving bi-histogram equalization)算法:将图像的直方图基于平均亮度分为两部分,然后对这两部分分别进行均衡化

DSIHE(dualistic sub-image histogram equalization)算法:将图像中值作为直方图分割阈值,把图像的直方图分割为两个子图,然后在分别均衡化。

WTHE(weighted thresholded histogram equalization)算法:通过在直方图均衡化之前加权值和设置阈值来控制增强过程。

二.基于像素直接调整的方法

1.伽马变换

伽马变换的基本形式如下:

曲线图如下:

通过以上曲线图:

gamma值小于1时,会拉伸图像中灰度级较低的区域,同时会压缩灰度级较高的部分

gamma值大于1时,会拉伸图像中灰度级较高的区域,同时会压缩灰度级较低的部分

2.对数变换

       对数变换主要用于将图像的低灰度值部分扩展,将其高灰度值部分压缩,以达到强调图像低灰度部分的目的。变换方法由下式给出。

这里的对数变换,底数为(v+1),实际计算的时候,需要用换底公式。其输入范围为归一化的【0-1】,其输出也为【0-1】。对于不同的底数,其对应的变换曲线如下图所示。

底数越大,对低灰度部分的强调就越强,对高灰度部分的压缩也就越强。相反的,如果想强调高灰度部分,则用反对数函数就可以了。看下面的实验就可以很直观的理解,下图是某图像的二维傅里叶变换图像,其为了使其灰度部分较为明显,一般都会使用灰度变换处理一下。

3.AGWD(Adaptive Gamma Correction With Weighting Distribution)

 

 

猜你喜欢

转载自blog.csdn.net/feiyanjia/article/details/82083811