基于形态学和高斯滤波的图像快速去雾算法
2019-12-12陈明谭涛
陈 明 谭 涛
1(四川工商职业技术学院信息工程系 四川 都江堰 611837)2(西华师范大学计算机学院 四川 南充 637002)
0 引 言
户外计算机视觉系统[1],如城市交通、自主导航和遥感探测等,是假定输入图像从透明的大气中获取的,但是真实情况下获取的图像可能会受到恶劣天气、雾或霾等条件的影响。这些条件降低了图像的对比度、色彩饱和度和可见性,导致大量细节信息丢失。作为计算机视觉系统的输入源,图像质量会对整个系统的性能产生直接影响。因此,国内外研究人员创建许多图像除雾算法来降低这种影响,图像除雾技术成为计算机视觉领域研究的热点之一。
由于雾或霾对于图像的影响随着距离[2]的增加而增加,图像除雾成为一个非常具有挑战性的问题。目前的图像除雾技术[3-4]大致可以分成两种类型:一类是不考虑图像降质原因, 采取常规图像增强算法如对比度增强[5]、直方图均衡化[6]、基于Retinex理论的图像增强[7]等作为基础处理手段的非物理模型图像除雾技术,这类方法通过提高图像对比度降低雾或霾对图像的影响,但是也容易造成过增强或者信息损失现象。另一类是考虑图像雾天降质原因,利用大气散射原理复原真实场景的物理模型图像除雾技术,经典的复原方法有暗通道先验方法(Dark Channel Prior,DCP)[8],这类方法畸变较小,除雾效果很好,但是由于计算复杂度较高,实时处理比较困难。
为了克服这些问题,研究人员提出了许多基于DCP的替代方案,在缩短处理时间的同时,提高图像处理的质量。Wang等[9]提出了一种基于线性变换的单图像去雾的快速算法,利用改进的四叉树分割算法估计大气光值,虽然取得了较好的效果,但是复原图像的颜色较暗,并且算法比较复杂。曾接贤等[10]提出一种基于暗通道的双边滤波模型,在暗通道先验理论的基础上,利用双边滤波估计大气光值和透射率,该算法较好地改善了除雾算法的时间复杂度,但是复原图像中出现Halo效应问题。Liu等[11]提出一种有效的多尺度相关小波方法,用于解决频域中的图像去雾和去噪问题,该算法在高频部分中自适应地去除噪声并增强纹理细节,但是复原图像中出现颜色失真现象。
上述除雾方法虽然在一定程度上提高了图像的除雾质量,但依然存在运算时间长、复原图像中出现Halo效应等问题。针对以上问题,本文提出了一种基于形态学和高斯滤波的暗通道先验的图像去雾算法。该算法利用形态学的开操作和膨胀运算,以及用于图像平滑的高斯滤波方法,可以快速、准确地获取具备主要结构的透射图,然后结合暗通道先验方法估计的全局大气光值,利用大气散射物理模型获取复原图像。
1 暗通道先验
在图像处理中最常用的单色大气散射模型如下:
I(χ)=J(χ)t(χ)+A(1-t(χ))
(1)
式中:χ=(x,y)表示图像坐标;I(χ)为雾天摄像机收到的光强;J(χ)表示实际场景中辐射强度;t(χ)为介质透射率;A为大气光值。
分析式(1)可知,除雾后的复原图像J(χ)求解可以通过下式转化为对透射率t(χ)和大气光A的估算:
(2)
根据式(1),透射率t(χ)可以表示为:
(3)
为了估算透射率t(χ),暗通道算法是利用无雾图像中R、G、B三色通道至少有一个颜色通道的亮度值趋近于0的先验规律进行估算:
(4)
式中:Jdark(χ)表示暗通道,趋于0;Ω(χ)表示以图像坐标χ为中心的邻域;Jc表示图像J中三原色通道R、G、B中之一。
(5)
现实生活中,因为图像中有雾会让人们感受到景深的存在[12],所以在图像除雾过程中可以适当引入一个乘积因子来保留一定程度的“雾”现象:
(6)
式中:系数ω一般取值为0.95。
大气光A通常可以借助暗通道图求取输入图像中对应的值,由于大气光的亮度较高,一般选取暗通道图中亮度值的前0.1%像素对A值估计:
(7)
2 去雾算法设计
暗通道理论在近年来单幅图像除雾算法中影响比较大,但是该方法对于透射率的估计过于粗糙,导致复原图像中出现Halo效应,如图1所示。因此,本文在暗通道先验的基础上,提出一种结合高斯滤波器和形态学操作的除雾算法,对最小通道图采用形态学开操作、高斯滤波、形态学膨胀运算,获取透射率的精细估计。本文算法可以有效避免Halo效应的产生,同时还大大缩短图像处理时间,该算法的流程图如图2所示。
(a) 输入图像 (b) 暗通道的透射率 (c) 复原图像图1 基于暗通道算法的Halo效应
图2 基于形态学和高斯滤波的暗通道先验除雾算法
基于大气散射模型除雾算法的关键是对透射率t(χ)及大气光值A的估计。在本文算法中,根据式(7)对空气光A进行估计。
根据A对输入图像I(χ)进行归一化:
(8)
归一化图像如图3(b)所示。
对于透射率t(χ),本文提出了一种结合形态学和高斯滤波器的估计方法。首先计算输入图像归一化后IN(χ)的最小通道:
(9)
操作结果如图3(c)所示。
在灰度图像中,形态学腐蚀运算是在结构元素确定的邻域中,选取图像值与结构元素值之差的最小值,其作用是使输出图像比输入图像暗,减弱比结构元素小的明亮细节的视觉效果。同样,形态学膨胀运算是在结构元素确定的邻域中,选取图像值与结构元素值之差的最大值,其作用是使输出图像比输入图像亮,减弱比结构元素小的暗细节的视觉效果,形态学腐蚀运算εB和膨胀运算δB可定义为:
(10)
式中:I(χ)是输入图像;B是结构元素。
在形态学中,对图像先进行腐蚀运算,再进行膨胀运算过程称为开操作。开操作可以消除图像中比结构元素尺寸小的亮细节,同时保持尺寸大的亮区域和图像的整体灰度值。对最小通道图Imin(χ)采取开操作的结果如图3(d)所示,其数学表达式定义为:
Iγ(χ)=γB(Imin(χ))=δB[εB(Imin(χ))]
(11)
高斯滤波器是一种线性滤波器,有效抑制噪声和平滑图像的同时,能够更多地保留图像的总体灰度分布特征。本文采用高斯滤波器平滑开操作处理后的图像,减小开操作形成的像素间的差异,如图3(e)所示。高斯滤波一般采用离散化窗口滑窗卷积方式实现,其数学表达式定义为:
IG(χ)=GaussianFilter(Iγ(χ),g)
(12)
式中:g为高斯滤波器窗长。
高斯核参数如下:
(13)
式中:σ为高斯分布的标准差。
应用高斯滤波后,图像中两个相邻区域形成梯度。为了消除梯度,并保留主要结构,图3(f)给出了对滤波后的图像应用膨胀运算后的结果:
ID(χ)=δB2(IG(χ))
(14)
利用最小通道逆与膨胀运算结果之间的最小值,估计透射率:
(15)
(a) 输入图像 (b) 归一化图像 (c) 最小通道 (d) 开操作
(e) 高斯滤波 (f) 膨胀运算 (g) 取(c)、(f)最小值 (h) 复原图像图3 本文算法计算实例
3 实验结果及分析
本文所有实验在一台配置为Intel(R) Core(TM)i5-3320 CPU @2.60 GHz和4 GB RAM的计算机上进行,算法使用Visual C++结合OpenCV 3.0实现。
本文采取文献[13]中6幅图像进行实验,比较该算法和其他两种算法的性能。文献[13]的图像在除雾算法的研究方式得到了广泛的应用,所以本文采取其中真实室外环境的3幅图像进行定性分析, 3幅合成图像进行定量性能对比。本文在实验中选取的参数如下:大气光A=[0.8 0.7 0.9],开操作结构元素B1的尺寸s=15,膨胀操作结构元素B2的尺寸d=42,高斯滤波器的尺寸g=37,透射率t(χ)与每个实验图像有关。
3.1 定性分析
图4-图6展示了文献[9]、文献[11]以及本文提出的方法在三幅自然图像(Forest、Pumpkin和Canon)的除雾结果。可以看出,利用三种算法进行除雾处理后,三幅自然图像中的大部分雾霾都被消除掉。对比每一幅图可以发现:在Forest图像中,本文算法色调更自然,亮度较高,文献[9]算法处理的结果颜色对比度较差,亮度偏暗,但光晕很少;在Pumpkin图像中,本文方法较好地表现了天空区域的细节,且不饱和色比其他两种方法要好,文献[9]算法处理的结果较暗,文献[11]算法出现颜色失真现象;在Canon图像中,本文方法获取的复原图像的对比度和颜色比其他两种方法要好,细节也更丰富。
(a) 输入图像 (b) 文献[9]算法 (c) 文献[11]算法 (d) 本文算法图4 自然图像(Forest)除雾算法结果
(a) 输入图像 (b) 文献[9]算法 (c) 文献[11]算法 (d) 本文算法图5 自然图像(Pumpkin)除雾算法结果
(a) 输入图像 (b) 文献[9]算法 (c) 文献[11]算法 (d) 本文算法图6 自然图像(Canon)除雾算法结果
3.2 定量分析
本文应用图像处理中常用的两种指标来评价算法的复原性能:PSNR(峰值信噪比)和SSIM(结构相似度指数)。PSNR表示复原图像的最大像素值与噪声的比值,定义为:
(16)
基于感知模型的归一化度量SSIM定义为:
S(x,y)=f(l(x,y),c(x,y),s(x,y))
(17)
图7-图9给出了在合成图像中应用除雾算法的结果。表1显示了文献[9]、文献[11]和本文算法通过PSNR和SSIM两种指标来评价算法复原性能的评估的结果。可以看出,对于这两个指标中所有经过处理的图像,本文算法的性能都优于另外两种算法。
(a) 输入图像 (b) 真实图像 (c) 文献[9]算法 (d) 文献[11]算法 (e) 本文算法图7 合成图像(roof2)除雾算法的结果
(a) 输入图像 (b) 真实图像 (c) 文献[9]算法 (d) 文献[11]算法 (e) 本文算法图8 合成图像(tree2)除雾算法的结果
(a) 输入图像 (b) 真实图像 (c) 文献[9]算法 (d) 文献[11]算法 (e) 本文算法图9 合成图像(bike)除雾算法的结果
表1 除雾结果对比
续表1
图10给出了三种算法处理一幅像素为600×400图像(roof2)时的运行时间结果。可以看出,本文算法相较于其他算法而言,在处理时间方面取得了极低的时间复杂度,处理速度获得了极大的提高,充分体现了本文算法的优越性。
图10 不同算法在600×400像素图像中的处理时间
4 结 语
本文提出一种基于形态学和高斯滤波的暗通道先验快速图像除雾算法。该算法采取形态学(开操作和膨胀运算)和高斯滤波对最小通道图进行处理,可以快速、准确地估计透射率,然后结合暗通道先验方法估计的全局大气光值,利用大气散射物理模型获得复原图像。通过对户外模糊图像的定性分析表明,本文算法比其他两种算法能够获得更多的背景细节,对比度和亮度也更好。此外,对不同的合成图像进行了PSNR和SSIM两个指标的定量分析,实验结果表明本文算法比其他方法更加精确,用时更少。本文算法在除雾精度和除雾时间效率上具有优越性,可以应用在视频去模糊、人工视觉等方面。