
2.2 雾天图像增强方法
2.2.1 全局直方图增强
图像直方图是对数字图像进行灰度分布的统计,可从分布曲线的视角反映出图像的整体灰度分布。例如,Uint8类型的数字图像矩阵,其默认的灰度级为0~28-1即0~255,在MATLAB中可通过imhist函数进行直接绘制,关键代码如下。

运行后,可得到原图像及对应的直方图分布,分别如图2-1和图2-2所示。

图2-1 原图像

图2-2 直方图分布
如图2-1所示,原图像整体呈现偏暗的特点,且存在部分细节模糊的情况。同时,从图2-2的直方图分布可以发现,图像的灰度总体集中在[75,150]的灰度范围内,这也正是图像整体偏暗的原因之一。本节通过调整图像的直方图来观察是否能改善图像的可视化效果,为此考虑进行直方图均衡化方法来调整图像整体的直方图分布,进而提高图像的整体清晰度。
直方图均衡化的基本思想是将原始的灰度统计直方图变换为均匀分布的形式,覆盖整体的灰度级提高图像整体的灰度范围,达到增强效果。假设某数字图像矩阵为f(x,y),像素总数为N,灰度级范围为[0,L],例如L=255表示Uint8类型的数字图像,令rk表示灰度级、nk表示此灰度级的像素个数,则直方图P(rk)计算公式为:

直方图均衡化是指对原图像经图像变换得到新的灰度图像,且其直方图为呈现均匀分布的特点。为此,需要对原图像中像素个数不均匀的区域进行拓宽或缩减处理,具体就是将像素数目偏多的灰度级进行拓宽,而对像素数目偏少的灰度级进行缩减,进而达到均匀化分布的目标。直方图均衡化的基本步骤如下。
(1)计算原图像直方图。
(2)计算灰度映射表。
(3)执行查表变换,利用灰度映射表计算原图像的像素得到新的像素值。
在MATLAB中可通过histeq函数进行直方图均衡化,关键代码如下。

运行后可得到直方图均衡化后的图像及对应的直方图分布,如图2-3和图2-4所示。

图2-3 直方图均衡化后的图像

图2-4 处理后的直方图分布
如图2-3所示,经直方图均衡化处理后的图像虽然在右上角的较暗区域存在一定的模糊,但相对于原图(图2-1)在可视化效果上具有了较高的清晰度,整体呈现出明显的亮度改观,达到了较为明显的增强效果。如图2-4所示,经直方图均衡化处理后的直方图分布相对于原直方图(图2-2)呈现出均衡化分布的特点,这也是直方图均衡化处理的直观显示。
因此,可对雾天图像采用全局直方图均衡化进行增强,并对比增强前后的直方图分布情况。考虑到灰度图与彩色图在图像矩阵维度上的不同,可直接采用R、G、B三通道遍历计算的方式进行处理,关键代码如下所示。

运行后,可得到对雾天图像进行直方图均衡化前后的图像及对应的直方图分布,如图2-5所示。经全局直方图均衡化处理后,雾天图像得到了一定的改善,且处理后的直方图呈现出明显的均衡分布特点。但是,使用全局直方图增强后的图像出现了较为明显的失真问题,例如图像内的树木区域就出现了偏暗的情况,这也正是此方法的不足之处。

图2-5 雾天图像进行直方图均衡化处理的前后对比
2.2.2 CLAHE增强
限制对比度的自适应直方图均衡(Contrast Limited Adaptive Histogram Equalization,CLAHE)是一种自适应局部增强方法。通过全局直方图进行去雾增强,往往会面临局部细节失真等问题,因此需要考虑引入局部自适应的直方图均衡方法。CLAHE方法主要特点是其具有对比度限幅的约束,可以对局部区域使用对比度限幅来提高增强效果,突出细节信息。此外,CLAHE方法利用插值来提高计算效率,并能有效地控制灰度值集中的均衡化增强,降低噪声干扰。
在MATLAB中可通过adapthisteq函数进行直方图均衡化,关键代码如下。

运行后,可得到CLAHE方法处理后的图像及对应的直方图分布,如图2-6和图2-7所示。

图2-6 CLAHE方法处理后图像

图2-7 处理后直方图分布
如图2-6所示,经CLAHE方法处理后的图像在整体上呈现出明显的增强效果,并且直方图分布维持了原有的宏观趋势,在局部细节的处理上也比全局直方图的增强图(图2-3)具有较为清晰的改进。
因此,可对雾天图像采用CLAHE方法进行增强,对比增强前后的直方图分布情况。考虑到灰度图与彩色图在图像矩阵维度上的不同,可直接采用R、G、B三通道遍历计算的方式进行处理,关键代码如下所示。

运行后,可得到对雾天图像进行CLAHE方法处理前后的图像及对应的直方图分布,如图2-8所示。经CLAHE方法处理后,雾天图像得到了明显的改善,且处理后的直方图保持了原直方图的分布态势并进行了一定的拓展。相比于图2-5(a)所示的全局直方图增强效果,CLAHE方法处理后的图像不存在失真问题,取得了良好的去雾效果。
2.2.3 Retinex增强
Retinex由Retina(视网膜)+Cortex(大脑皮层)合成,所以也称为“视网膜大脑皮层”理论。Retinex是基于人类视觉系统的颜色恒常性色彩理论,即物体的颜色具有一致性的特点,由物体对长波(红色)、中波(绿色)、短波(蓝色)光线的反射能力决定,不受光照非均匀性的影响,呈现颜色恒常性的特点。Retinex增强方法可以平衡图像灰度动态范围压缩、图像边缘增强和图像颜色恒常三个指标,进而可将其应用于雾天图像的自适应增强。
Retinex方法可将图像f(x,y)分解为反射图s(x,y)和低频亮度图的乘积l(x,y),通过将亮度图的低频消除,可以保留高频边缘信息,进而达到图像增强的效果,其处理流程如图2-9所示。对Retinex增强流程进行简化,关键步骤总结如下。

图2-8 雾天图像进行CLAHE处理的前后对比
(1)图像LOG计算,将原图f(x,y)分解为反射部分s(x,y)×低频亮度部分l(x,y)。
(2)消除低频亮度部分,保留高频反色部分,得到r(x,y)。
(3)图像EXP计算,并进行自适应滤波输出。

图2-9 Retinex增强流程
低频亮度部分l(x,y)可以通过高斯低通滤波进行计算,假设滤波器g(x,y)定义如下:

其中,σ为高斯环绕尺度,可作为参数进行调整。将其应用于原图做卷积计算,即可得到亮度分量公式如下:

最后,消除低频分量,保留高频分量,公式如下:

根据Retinex增强的关键步骤,可针对雾天图像按R、G、B三通道循环的方法进行简化计算,关键代码如下所示。

运行后,可得到对雾天图像进行Retinex增强,处理前后的图像及对应的直方图分布,如图2-10所示。

图2-10 雾天图像进行Retinex增强处理的前后对比

图2-10 续
经Retinex增强处理后,雾天图像得到了明显的改善,且处理后的直方图保持了原直方图的波峰走势并进行了更加深入的拓展。相比于全局直方图增强、CLAHE增强的处理效果,Retinex增强处理处理后的图像不存在失真问题,也能保证图像整体的色彩分布,取得了良好的去雾效果。