本发明涉及一种雾天图像清晰化方法,特别涉及一种改进的Retinex图像去雾方法。
背景技术:
在雾天情况下,成像设备受到大气悬浮粒子的散射和吸收,以及大气光参与成像的影响,所成图像对比度下降,能见度降低,细节模糊不清,图像质量大幅度下降,从而大大影响了户外视觉系统的正常工作,因此图像的去雾处理乃是当务之急。
目前,主流的单幅图像去雾算法主要有两大类别,一种是基于图像增强的去雾算法,这种算法不考虑图像的成像原理,仅从图像处理的角度出发,提高图像的对比度,突出图像细节,从而改善最终图像的视觉效果,并满足生产、生活的需要。另一种是基于图像复原的去雾算法,这种算法基于大气散射模型,通过一些辅助信息或者是先验定律求复原出无雾图像。
大气散射模型是指,成像设备成像时接收到的总辐射量,是由入射光衰减后的辐射量和大气光成像系统的辐射量的总和,即:
I(x)=I∞ρe-βd+I∞(1-e-βd) (1)
其中I∞表示环境光,ρ是场景的反射率,β表示大气的散射系数,d表示场景深度。式中I∞ρ共同表示场景的辐射度,即图片的无雾情况。e-βd是场景的透射率,其表征了入射光在经过大气到达成像设备未被衰减部分所占的比例,可以看到随着场景深度d的变大,e-βd的值越小,也就是说衰减的也越多。I∞ρe-βd则共同表示入射光衰减项,I∞(1-e-βd)则表示了环境光参与成像的影响。
在众多去雾算法中Retinex算法属于图像增强类的去雾算法。而Retinex理论是由Land等人提出的一个关于人类视觉系统如何调节感知到的物体的颜色和亮度的模型。其数学表达式如下:
I(x,y)=L(x,y)·R(x,y) (2)
其中I(x,y)是人最终所感知到的图像,L(x,y)是环境照度,R(x,y)是反射分量。其中环境照度L(x,y)决定了图像所能达到的动态范围,会随着环境的改变而改变。而反射分量R(x,y)则是物体的内在性质。而Retinex理论的基本思想就是通过将环境照度L(x,y)从I(x,y)中除去,从而还原出不受照度影响的清晰图像。
进一步的我们可以得到单尺度Retinex算法,其数学表达式如下:
R(x,y)=log(I(x,y))-log(F(x,y)*I(x,y)) (3)
其中属于高斯滤波,c是高斯函数的尺度,决定着模糊的程度,而k表示归一化因子。
由于Retinex理论所具有的色彩恒常性,使得Retinex算法在对场景光照不足或是光照不均的情况下的图像增强取得了突出的效果。但是当将传统的Retinex算法直接应用到图像去雾中时,虽然依旧保持了其颜色恒常的特性,但是去雾结果却并不是十分理想。
根据大气散射理论和Retinex理论,我们可以估算出经过Retinex算法处理后的结果,
由于Retinex算法所估算的照度分量属于乘性分量,故这里我们可以将其近似估算为透射率e-βd,因此我们便可以得到上式。从上式中,我们可以看到,经过单尺度Retinex运算处理后的结果中,除了I∞ρ外还有的影响,所以随着景深的加深,图像受到右式第二项的影响也就越大,这也就是图像景深较深处无法去除雾气的原因。
技术实现要素:
本发明主要是在单尺度Retinex算法基础上,结合大气散射理论,提出一种改进的基于Retinex的单幅图像去雾算法,提升其去雾效果,从而达到能够在雾天中使用的目的。
在这里,本发明提出一个新的雾天情况下的Retinex理论。在雾天情况下,我们所感受到的颜色和亮度,不仅仅是由环境照度和物体本身的反射率决定,它还受到了大气光的直接参与成像的影响。那么新的表达式为:
I(x,y)=R(x,y)L(x,y)+n(x,y) (5)
其中n(x,y)为大气光直接参与成像部分。
一种改进的Retinex图像去雾算法,在基于新的雾天情况下的Retinex理论的基础上,具体步骤如下:
步骤1:输入雾霾图像,根据公式I(x,y)=R(x,y)L(x,y)+n(x,y),我们首先应估算出n(x,y)并将其除去,在这里由于n(x,y)属于大气光直接成像造成,故其变换平缓,属于低频部分,这里我们使用高斯滤波来进行估算n(x,y)。
步骤2:将估算出的n(x,y)从原图中减去,并将得到的值归一化,取得中间结果。
步骤3:根据单尺度Retinex算法R(x,y)=log(I(x,y))-log(F(x,y)*I(x,y)),对中间结果进行高斯滤波,估算出照度分量,并在Log域中,将估算的照度分量L(x,y)从中间结果中去除。
步骤4:将得到的结果进行自动色阶处理,消除结果中的过曝光现象,并将处理后的结果输出。
进一步的,在步骤1,和步骤3中的高斯滤波函数的尺寸,统一取值c=80可以取得较好的去雾效果。
与现有技术相比,本发明具有如下优点和技术效果:
本发明由于是在Retinex算法的基础上进行改良,所以依旧保留Retinex算法的色彩恒常性,有着较好的颜色保真度。并且经过改良后,图像的去雾效果大大改善,远处景物变得清晰,细节部分变得明显。并且,该发明仅有高斯函数的尺寸这一个可变参数,设置简单,将其默认设置为80,即可以应对绝大多数情况。而且该算法运行速度快,能够满足实时的要求。
附图说明
图1为实例中改进的Retinex图像去雾算法的流程图。
图2为本发明实施例原始雾霾图像。
图3为本发明实施例高斯滤波所求得n(x,y)部分。
图4为本发明实施例中间结果图。
图5为本发明实施例最终结果图(未进行自动色阶处理)。
图6为本发明实施例最终结果图(进行自动色阶处理)。
具体实施方式
以下将结合附图说明对本发明做进一步的说明,但本发明的实施和保护不限于此,需指出的是,以下若有未特别详细说明之处,均是本领域技术人员可参照现有技术实现或理解的。
如图1所示,这种改进的Retinex图像去雾方法步骤如下:
步骤1:输入雾霾图像,根据公式I(x,y)=R(x,y)L(x,y)+n(x,y),我们首先应估算出n(x,y)并将其除去,在这里由于n(x,y)属于大气光直接成像造成,故其变换平缓,属于低频部分,这里我们使用高斯滤波来进行估算n(x,y)。
步骤2:将估算出的n(x,y)从原图中减去,并将得到的值归一化,取得中间结果。
步骤3:根据单尺度Retinex算法R(x,y)=log(I(x,y))-log(F(x,y)*I(x,y)),对中间结果进行高斯滤波,估算出照度分量,并在Log域中,将估算的照度分量L(x,y)从中间结果中去除。
步骤4:将得到的结果进行自动色阶处理,消除结果中的过曝光现象,并将处理后的结果输出。
以图2为例,进行实验步骤的详细说明,并给出去雾结果。
1)读入要处理的雾霾图像,如图2,其大小为525x600x3;
2)首先,我们通过对原图I(x,y)进行高斯滤波,我们可以得到加性分量n(x,y),结果如图3所示,为了便于观看,我们对n(x,y)进行了归一化处理。
3)将得到的n(x,y)从原图中减去,并将得到的结果进行归一化处理,便能够得到中间结果,如图4所示。我们可以看到,该图像细节比较清晰,但是图像整体色调偏暗。
4)最后我们根据式(3)进行处理,可以得到图5的处理结果,可以看到,得到的结果中有着轻微的过曝光的现象。
5)对图5进行自动色阶处理,消除结果中的过曝光现象,并得到最终结果,如图6所示,图像有着较好的颜色保真度,并且经过改良后,图像的去雾效果大大改善,远处景物变得清晰,细节部分变得明显。
虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但都属于本发明的保护范围。