图像的对比度增强算法在很多场合都有着重要的应用,特别是在医学图像上,这是因为在众多疾病的诊断中,医学图像的视觉检查时很有必要的。而医学图像由于本身及成像条件的限制,图像的对比度很低。因此,在这个方面已经开展了很多的研究。这种增强算法一般都遵循一定的视觉原则。众所周知,人眼对高频信号(边缘处等)比较敏感。虽然细节信息往往是高频信号,但是他们时常嵌入在大量的低频背景信号中,从而使得其视觉可见性降低。因此适当的提高高频部分能够提高视觉效果并有利于诊断。
在这一方面,传统的线性对比度拉升以及直方图均衡化是使用的最为广泛的全局图像增强方法。对比度拉升线性的调整了图像的动态范围,而直方图均衡化栖利用累计直方图分布概率重新映射图像的数据。这些方法虽然简单,但是都没有考虑到局部的信息。并且,全局直方图均衡化(GHE)还会产生使得一些噪音过度加强。
在局部对比度增强方面,有两种方式是最为有名的,一种是自适应直方图均衡化(AHE),这个算法可以参考我的博文OpenCV 对比度受限的自适应直方图均衡化(CLAHE) C++实现_opencv createclahe c++-CSDN博客
OpenCV彩色图像的直方图均衡化 C++_lab颜色直方图opencv c++-CSDN博客
还有一种就是自适应对比度增强(ACE)。AHE算法使用局部的直方图的相关信息对数据进行映射。这改变了图像的对比度,但是需要大量的计算。后来有人利用了双线性差值技术克服了这个问题,首先将图像分块,然后分别计算这些快内部的映射关系。为了增强某一个像素点的值,映射关系通过与这个像素所在块相邻的四个块的映射关系差值获得。在这个算法中,仅仅需要一个块大小的参数(在我的博文中还对参数进行了扩展)。
ACE算法采用了反锐化掩模技术,我们对此过程解释如下:首先图像被分成两个部分。一是低频的反锐化掩模(unsharp mask)部分,可以通过图像的低通滤波(平滑,模糊技术)获得。二是高频成分,可以过原图减去反锐化掩模获取。然后高频部分被放大(放大系数即为对比度增益CG)并加入到反锐化掩模中去,最后得到增强的图像。ACE算法的核心就是如何计算CG,这里将介绍两种简单的CG计算方法。
自适应对比度增强
在图像处理的方法中,自适应方法是与图像本身信息相关,根据图像对图特征对图像进行处理的一系列方法,这些方法往往具有更好的鲁棒性、普适性。而本文中提到的这种ACE方法由NarendraPM Narendra P MNarendraPM等人在《Real-Time Adaptive Contrast Enhancement》中提到,原理简单易懂,有兴趣的朋友可以点击链接去阅读。Real-Time Adaptive Contrast Enhancement | IEEE Journals & Magazine | IEEE Xplore
对于图像中的每一个点,分别计算其局部均值与局部标准差;
上述式子中,f(s,k) f(s,k)f(s,k)代表坐标为(s,k) (s,k)(s,k)的点的像素值,M(i,j) M(i,j)M(i,j)为以点(i,j) (i,j)(i,j)为中心,窗口大小为[(2n+1),(2m+1)] [(2n+1),(2m+1)][(2n+1),(2m+1)]的区域的局部均值,对应的σ2(i,j) \sigma ^{2}(i,j)σ2(i,j)为局部的方差,σ(i,j) \sigma (i,j)σ(i,j)为局部图像的标准差。
在求得局部均值与标准差后,就可以对图像进行增强了,具体的公式如下;