基于暗通道原理的图像去雾算法改进

2020-06-10 07:40倪金卉
电子技术与软件工程 2020年4期
关键词:透射率像素点亮度

倪金卉

(吉林建筑科技学院 吉林省长春市 130114)

雾是十分普遍的大气现象,采集图像时目标图像和雾被一起采集,这种图像比无雾图像看起来朦胧模糊且伴有颜色偏灰白、对比度下降现象。何恺名博士通过大量户外自然图像采集实验得出,在户外自然无雾图像中,除去天空区域外,绝大多数的图像数据块中都有一些在某个色彩通道上亮度值很小的像素,并提出了暗通道先验原理模型,通过暗通道先验假设直接恢复出无雾的图像。但在实际应用中,利用软抠图算法来细化粗糙的透射率,会导致算法的复杂度很高。

经过大量实验对比分析,本文题提出一种基于暗通道先验原理的改进算法。户外采集的图像,天空区域一般在图像的中上部,利用这种特点对是否存在天空进行判断和分割。从而避免高亮物体对大气参数求取过程的影响并提高了求取大气参数的精度。结合Retinex算法、利用快速双边滤波器对透射率滤波从而消除Halo现象和色彩失真。针对像素点的值接近大气光值时,对透射率加上增幅项来消除出现的色斑色块效应。

1 暗通道先验原理去雾算法

1.1 大气散射模型

在近些年计算机视觉领域,有一种得到广泛应用的雾天图像成像物理模型为:

其中,I(x)为获取的有雾降质图像;J(x)为无雾的场景真实图像;A为大气参数;t(x)为透射率。雾天降质图像去雾的目的就是从I(x)中恢复J(x),从而得到复原无雾图像。

1.2 暗通道先验原理

暗通道先验原理是一种基于无雾真实场景图像的先验统计规律,即在绝大多数的非天空的部分区域里,都会有至少一个颜色通道的像素强度值很低并趋近等于0,即:

其中,Jc是J的一个颜色通道,Ω(x)是一个以x为中心的小图像块,Jdark是暗通道图像。

在(1)式中为了求取透射率t(x),假设大气参数A已知,在局部区域Ω(x)内的透射率恒定不变,记为首先对式(1)中两边同时除以Ac,为某一颜色通道,然后对两边同时作变换,根据式(2),得到:

由于透射率在局部区域内恒定不变,式(3)计算的透射率图存在方块和halo效应,因此,采用soft matting方法可以得到优化透射率图t(x)。至此,可由t(x),A和I(x)恢复J(x),即:

图1:天空区域分割图

为了减少复原图像噪声t0设置为0.1。其中,大气光强参数A的估计方法为:先查找取出Jdark中亮度最大的前0.1%像素点,然后取这些像素在原图I(x)中对应像素点的最大值作为大气参数A的值。

2 改进的去雾方法

2.1 分离天空区域

包含天空的户外图像,天空一般具有颜色单一、较亮并且平滑、分布在图像的中上部等特点。由此判断天空区域是否存在。选取雾天降质图像的前Ntop行并求取像素亮度的平均值和最大亮度值vmax,若则判断为天空区域。当μ1取0.89时,检测的结果较准确。

经过比较分析选择使用快速Canny算子进行边缘检测。快速Canny算子流程为:

(1)高斯滤波;

(2)Otsu法计算出阈值T,确定天空边缘点的灰度值范围为(T, Lmax),其中Lmax为图像最大灰度值,缩小了求取范围从而提高求取速度。

(3)Sobel算子求梯度与方向。

(4)极大非抑制。

(5)双阈值提取边缘。

(6)边缘图像。

天空区域检测出效果图如图1所示,白色区域为标记的天空区域。

2.2 估计大气光强参数A

对于不存在大片天空区域的降质图像,在有雾降质图像暗原色中上部找到亮度最大的前0.1%的像素点,取其对应原有雾降质图像像素点平均值记为在这些像素点中找到亮度最大的像素点并且满足对应的有雾降质图像的像素点即为大气光强,μ2取1.1时,复原后的无雾图像效果较好。估计的大气光强更加准确,降质图像复原效果相对更加自然。

图2:自适应对数算法调整对比图

图3:多种去雾方法对比

图4:多种去雾方法对比

2.3 估计透射率t(x)

本文使用快速双边滤波器来细化透射率。具体的形式化定义入公式(5):

其中,q=(u,v)为中心点像素p的领域像素点,S是领域像素点的集合,Wp是归一化因子,为空间邻近度因子,为灰度相似度因子,它们的表达式分别由下面两式表示:

本文使用经过改进快速降维双边滤波器[1]。其中σs、σr是两个重要参数,后面实验阶段进行分析选取,经过快速双边滤波处理后,输出的图像透射率t(x)的边缘特性得到了显著的提高。

2.4 HSV空间的快速MSR算法

由于分割出的天空区域光照均匀,亮度值较高,没有剧烈突变区域,整体比较平滑。适合用多尺度Retinex算法去雾。对于彩色RGB图像的处理,经过MSR算法处理的图像有失真现象,因此需要转换到HSV空间进行处理。根据HSV空间的特点,对亮度分量V进行MSR算法处理进行去雾,为了进一步提高视觉效果,还可采用分段对数变换增强饱和度分量S。MSR算法可用公式(9)来描述:

下标i表示 ,G,B代表三个颜色通道;N是尺度个数一般取3,Wn是尺度对应的权重函数,满足

当N取3时,一般取W1=W2=W3=1/3。

Fn(x,y)是低通滤波器,一般为高斯环绕函数,其公式如下:

其中,σn是高斯函数的标准差,决定尺度的大小。Kn具有的特点。

其中在HSV空间MSR算法对V分量处理的公式可表示如下:

实验发现3个尺度(小,中,大)的环绕函数的结合能够很好的实现动态范围压缩和色彩恢复。由于MSR算法用高斯函数与图像进行卷积来求得图像的照度分量,假若使用公式(9)直接进行卷积,计算量很高,难以满足工程上实时要求,因此本文使用递归高斯函数进行加速。针对降质图像天空区域,在HSV空降经过处理后得到的输出结果在转换到RGB空间最终得到无雾的天空区域。

2.5 分割降质图像非天空区域复原

在式(4)中,何恺名博士等处理透射率图t(x)太小接近于0时,利用max(t(x),t0)来给透射率图设个下限值,由于场景恢复图像J(x)在亮度值上通常小于大气光强值A,所以去雾后的图像显得较为暗淡,引入t0为了增强去雾图像的曝光度。但是由式(3)可知,当I(y)非常接近A时,t(x)就会非常小,接近于0,即当t(x)

其中p0取大气光强值,p为当前点的像素值,经过多次实验μ3取为1.1,处理后得到的图像效果较好。针对有雾图像非天空区域恢复无雾场景公式变换为:

2.6 整图像去雾输出

去雾输出的图像整体偏暗,为了还原出清晰对比度较好的图像。本文使用Drago[2]提出的自适应对数映射算法对去雾图像进行色调调整。

对于去雾处理后的图像J(x)中的一个颜色通道Jc(x),其色调调整表达式为:

式中,t(x)为彩色图像RGB通道色调调整后的输出,Jdmax为设备可显示的最大亮度值,其值一般取100[2]。b的值决定较暗区域细节可见度和高像素值被压缩的程度,其值一般取0.85[2]。Jcmax(x)为Jc(x)通道中的最大像素值。图2是去雾输出图像和经过色调调整后的图像实验结果。

图2(a)为拍摄原图,图2(b)是采取本文算法恢复的无雾图像,去雾后的图像整体偏暗,且去雾后的图像中细节信息不明显。经过自适应对数算法调整后,图像2(c)的整体对比度和亮度都得到了提高,视觉效果更加清晰。

3 实验结果分析

实验环境为:处理器是Intel Core i7-6700,操作系统是64位Windows7,内存是8G,使用MATLAB R2015b和C++混合编程实现。

将改进算法和近年来比较优秀的去雾算法进行对比分析。在图3中,He算法去雾后图像天空云彩少许失真;Tarel算法在图像边缘处有光晕现象,同时伴有天空色彩失真和边缘细节模糊;Tan算法去雾后对比度有很大提高,但是存在色偏现象;本文算法处理后,无天空失真,视觉效果好。在图4中,He[3]算法去雾后有较好的视觉效果,但是由于求得的透射图偏小,造成天空区域出现失真;Tarel[4]的方法处理后图像天空与景物交界区域有光晕,同样像He算法也存在天空区域失真问题;Tan[5]算法有较好的对比度,但是存在色偏现象;本文算法去雾后清晰自然,并且经过补偿天空无失真现象。

4 结论

本文提出一种基于暗通道先验原理的改进算法。首先对图像进行天空区域分割,避免高亮物体对大气参数求取过程的影响并提高了求取大气参数的精度。结合Retinex算法、利用快速双边滤波器对透射率滤波从而消除Halo现象和色彩失真。针对像素点的值接近大气光值时,对透射率加上增幅项来消除出现的色斑色块效应。实验结果表明:本文提出的算法改善了天空失真问题,提高了处理速,有效地提高了图像去雾的整体效果。

猜你喜欢
透射率像素点亮度
亮度调色多面手
基于5×5邻域像素点相关性的划痕修复算法
纯色太阳镜镜片耐日光辐照性能试验研究
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
基于斩波调制的LED亮度控制
人生的亮度
石墨烯光栅太赫兹透射特性的研究
玻璃长波透射率对普通双层中空玻璃热特性的影响
晶格常数对左手材料的能量透射率及负折射率的影响