基于多尺度窗口的自适应透射率修复图像去雾方法与流程

文档序号:15832737发布日期:2018-11-07 07:30阅读:227来源:国知局
基于多尺度窗口的自适应透射率修复图像去雾方法与流程

本发明属于图像处理技术领域,具体涉及一种基于多尺度窗口的自适应透射率修复图像去雾方法。

背景技术

近年来,我国国内雾霾天气不断,然而据相关专家预测,我国想要彻底消除雾霾的影响,至少还需15-20年。因此,研究雾霾天气下含雾图像的清晰化复原成为图像处理领域当今一大研究热点。

目前,国内外图像去雾的主流方法从原理上大致可分为两类:基于图像增强的去雾方法和基于物理模型的图像复原方法。前者的缺点是未考虑导致图像降质的因素,仅通过提升图像对比度实现去雾,因此,雾并没有从本质上去除,效果并不理想。后者大都是建立在已知图像场景深度的基础上,或者要求提供多幅不同条件下的同一场景退化图像作为辅助信息,这类方法在实际应用中有一定的局限性;近年来,很多学者转向研究依托先验知识或者假设的单幅图像去雾方法。

2009年,何凯明教授提出了基于暗原色先验原理的图像去雾算法。由于其在获取含雾图像的暗原色图时采用了最小值滤波器(即15*15窗口),这就导致复原出的图像存在明显的光晕效应,即“halo”效应;何凯明教授通过使用软抠图进行透射率优化来消除“halo”效应,成功复原出了清晰图像。但是,由于软抠图算法耗时,实时性较差,导致其在实际推广应用中受到一定程度的限制。后来一些学者提出了插值抠图算法来优化透射率。相对于软抠图算法,这类算法实时性得到提高,但是这种算法由于在插值时需要对稀疏矩阵进行运算,而对稀疏矩阵的运算又是平方的运算量,所以该算法的时间复杂度仍然很高。再后来一些学者提出了基于改进的暗原色先验原理去雾算法。即在求取暗原色图时去除了最小值滤波,即将原先每个“块区域”的rgb三个通道最小值替换为每个像素点三个通道当中的最小值。这样虽然有效消除了光晕效应,且时间复杂度也得到了很大程度的降低,但是这样会使去雾效果得到很大程度的减弱,会导致去雾不彻底。

此外,一般情况下,基于暗原色原先验原理的图像去雾方法得到的去雾效果较好,但暗原色先验原理不适用于图像中包含天空和白色物体等明亮区域。为此,一些学者为了克服上述问题,对透射率进行修正,提出了一种基于双阈值的明亮区域识别方法和透射率修正机制,该方法取得了一定的效果,但是假定明亮区域的判定条件需要人为的设定参数,该算法对于不同的图像鲁棒性较差。



技术实现要素:

本发明的目的在于提供一种基于多尺度窗口的自适应透射率修复图像去雾方法,以解决现有技术存在的问题,本发明可以较好的解决上述算法出现的“halo”效应现象并且有效降低算法的时间复杂度;以及解决暗原色先验原理在包含天空和白色物体等区域失效的问题,扩展了暗原色先验原理的适用范围,使其能够处理各类不同场景的雾化图像。

为达到上述目的,本发明采用如下技术方案:

基于多尺度窗口的自适应透射率修复图像去雾方法,包括以下步骤:

步骤1:获取含雾图像i,并得到含雾图像i的灰度图igray

步骤2:根据8方向边缘检测算子对含雾图像i进行边缘检测,得到边缘检测图itest,根据边缘检测图itest判断是否为景深边缘;

步骤3:根据步骤2中所得到的判别结果自适应选择窗口大小,如果判断为景深边缘,则在景深边缘处采用n*n的窗口求取暗原色图;如果判别为非景深边缘,则在非景深边缘处采用m*m窗口求取暗原色图;通过窗口大小的自适应选择得到多尺度窗口的暗原色估计图jdark,其中m=3n;

步骤4:根据步骤3得到多尺度窗口的暗原色估计图jdark求取大气光强a;

步骤5:定义大气耗散函数:v=a(1-t(x)),其中,a表示大气光强,t(x)表示透射率,v表示大气耗散函数值;

步骤6:将含雾图像i的灰度图igray作为引导图像,将步骤3得到的多尺度窗口的暗原色估计图jdark作为待滤波图像,通过引导滤波器,得到边缘增强的暗原色图像v′,也即大气耗散值v′;

步骤7:对步骤6中得到的大气耗散值v′进行修正,得到修正后的散射图v″;

步骤8:将步骤4中得到的大气光强a和步骤7中得到的修正后的散射函数值v″,带入大气耗散函数中,得到投射图t(x);

步骤9:将步骤8中得到的投射图t(x)带入去雾模型公式i(x)=j(x)t(x)+a(1-t(x))中得到去雾后图像j(x)。

进一步地,步骤2中8方向边缘检测算子具体如下:首先建立一个极坐标系,定义极轴方向为0方向,逆时针旋转45度定义为1方向,逆时针旋转90度定义为2方向,逆时针旋转135度定义为3方向,逆时针旋转180度定义为4方向,逆时针旋转225度定义为5方向,逆时针旋转270度定义为6方向,逆时针旋转315度定义为7方向,且0方向检测算子至7方向检测算子依次表示如下:

进一步地,步骤2中根据边缘检测图itest判断是否为景深边缘具体为:若边缘检测图itest中滑动窗口内全部像素点的像素值为零,即为非景深边缘,若边缘检测图itest中滑动窗口内至少有一个像素点的像素值不为零,即为景深边缘。

进一步地,步骤3中n=5,m=15。

进一步地,步骤4中求取大气光强a具体为:选取多尺度窗口的暗原色估计图jdark亮度值最大的前0.1%的像素点,对这些像素点的亮度值进行求和并平均,所得到的均值即为大气光强a。

进一步地,步骤6中通过引导滤波器对暗原色图进行边缘增强,v′=guide(igray,jdark),其中,guide表示引导滤波器。

进一步地,步骤7中对步骤6中获取的大气耗散值v′进行修正,得到修正后的散射图v″,即v″=v′(1-ωδc),其中,δc=|v′-jdark|,δc表示边缘增强后的暗原色图像v′与暗原色图jdark之间相差的纹理信息,ω是调整因子,且0<ω<1。

与现有技术相比,本发明具有以下有益的技术效果:

本发明方法在很大程度上,有效减少了“halo”效应,同时算法的实时性得到提高;此外,该算法针对暗原色先验原理在诸如天空和白色物体等区域的不适用性进行了扩展,较好的解决了暗原色先验原理在明亮区域失效的问题,扩展了暗原色先验原理的适用范围,使其能够处理各类不同场景的雾化图像。

本发明基于多尺度窗口的自适应透射率修复的图像去雾算法有着两个明显的优点:

①基于多尺度窗口的自适应暗原色估计算法,能够针对景深边缘和非景深边缘分别采用不同大小的窗口来进行暗原色估计,即在景深边缘采用5*5大小的窗口,以此更好的保持边缘细节,在非景深边缘采用15*15大小的窗口,以此减少算法的时间复杂度和保证去雾效果。

②基于自适应透射率修复的图像去雾算法,能够针对暗原色先验原理在包含天空和白色物体等区域失效的问题,进行自适应的估计和修正透射率,扩展了暗原色先验原理的适用范围。

附图说明

图1是本发明的8方向边缘检测算子图,其中(a)为0方向,(b)为1方向,(c)为2方向,(d)为3方向,(e)为4方向,(f)为5方向,(g)为6方向,(h)为7方向;

图2是滑动窗口示意图;

图3是本发明算法的流程示意图;

图4是第一组实验结果图,其中,(a)为原始含雾图像,(b)为边缘检测图像,(c)为双边滤波去雾后图像,(d)为梯度双边滤波去雾后图像,(e)为引导滤波器去雾后图像,(f)为本发明算法;

图5是第二组实验结果图,其中,(a)为原始含雾图像,(b)为边缘检测图像,(c)为双边滤波去雾后图像,(d)为梯度双边滤波去雾后图像,(e)为引导滤波器去雾后图像,(f)为本发明算法。

具体实施方式

下面结合附图对本发明作进一步详细描述:

传统的基于暗原色先验原理的图像去雾算法存在明显的“halo”效应现象,以及基于暗原色先验原理的图像去雾算法在对包含天空和白色物体等区域处理时会失效的问题。针对上述不足,本发明提出一种基于多尺度窗口的自适应透射率修复的图像去雾算法。

该算法不仅有效减少了“halo”效应,而且算法的实时性得到提高;同时,较好的解决了暗原色先验原理在明亮区域失效的问题,扩展了暗原色先验原理的适用范围,使其能够处理各类不同的雾化图像。具体思路是,首先通过边缘检测,判断是否为景深边缘。然后,若判断出是景深边缘,则采用5*5大小的滤波窗口,若判断出是非景深边缘,则采用15*15大小的窗口来进行暗原色估计。紧接着通过引导滤波器对多尺度窗口的暗原色估计图进行边缘增强,并对大气耗散函数值进行修正,得到修正后的大气耗散函数值。再将大气光和大气耗散函数值带入大气耗散函数得到透射率。最后将透射率带入去雾模型公式,得到去雾后图像。

参见图1-图3,基于多尺度窗口的自适应透射率修复图像去雾方法,包括以下步骤:

步骤1、获取含雾图像i,以及含雾图像i的灰度图igray,等待下一步处理。

步骤2、根据新的8方向边缘检测算子来对含雾图像i进行边缘检测,得到边缘检测图itest,根据边缘检测图itest来判断是否为景深边缘,若边缘检测图itest中滑动窗口内全部像素点的像素值为零,即为非景深边缘,若边缘检测图itest中滑动窗口内只要有一个像素点的像素值不为零,即为景深边缘,为下一步做好准备,其中,新的8方向边缘检测算子如图1所示,首先建立一个极坐标系,定义极轴方向为0方向,逆时针旋转45度定义为1方向,逆时针旋转90度定义为2方向,逆时针旋转135度定义为3方向,逆时针旋转180度定义为4方向,逆时针旋转225度定义为5方向,逆时针旋转270度定义为6方向,逆时针旋转315度定义为7方向。

步骤3:根据步骤2中所得到的判别结果,采用多尺度窗口的自适应暗原色估计算法,自适应的选择窗口大小,如果判断为景深边缘,则在景深边缘处采用5*5的窗口来求取暗原色图;如果判别为非景深边缘,则在非景深边缘处采用15*15窗口来求取暗原色图;通过窗口大小的自适应选择得到多尺度窗口的暗原色估计图jdark

暗原色先验原理指的是:何凯明等人在收集了大量的无雾图像后经过统计发现了一个规律,即绝大部分室外无雾图像在任意的局部小块中,总存在一些像素,它们的某一个或者几个颜色通道的值都很小,趋于零,以rgb颜色空间的图像为例,暗原色可以用数学表示如下:jdark(x)→0。

步骤4:根据步骤3得到多尺度窗口的暗原色估计图jdark来求取大气光强a;首先对获取到的多尺度暗原色估计图进行降序排列,然后选择前0.1%像素点,对这些像素点的亮度值进行求和并平均,将均值作为最终获取的大气光强。

步骤5:定义大气耗散函数:v=a(1-t(x)),其中,a表示大气光强,t(x)表示透射率,v表示大气耗散函数值;

步骤6:将含雾图像i的灰度图igray作为引导图像,将步骤3得到的多尺度窗口的暗原色估计图jdark作为待滤波图像,通过引导滤波器,得到边缘增强的暗原色图像v′,也即大气耗散值v′,v′=guide(igray,jdark),其中,guide表示引导滤波器;

步骤7:对步骤6中得到的大气耗散值v′就行修正,得到修正后的散射图v″,即v″=v′(1-ωδc),其中,δc=|v′-jdark|,δc表示边缘增强后的暗原色图像v′(也即大气耗散值)与暗原色图jdark之间相差的纹理信息,ω(0<ω<1)是调整因子,该因子的目的是为了保留少量的雾,增加图像的真实感;

步骤8:将步骤4中得到的大气光强a和步骤7中得到的修正后的散射函数值v″,带入大气耗散函数v″=a(1-t(x))中,变形可得:将v″和a带入变形后的公式,得到投射图t(x);

步骤9:将步骤8中得到的投射图t(x)带入去雾模型公式i(x)=j(x)t(x)+a(1-t(x))中,将其变形可得:代入t(x),得到去雾后图像j(x)。

本发明算法旨在针对传统的基于暗原色先验原理的图像去雾算法存在明显的“halo”效应现象,以及基于暗原色先验原理的图像去雾算法在对包含天空和白色物体等区域的失效问题,提出了一种多尺度窗口的自适应透射率修复的图像去雾算法。该算法通过多尺度窗口的自适应暗原色估计不仅较好的解决了“halo”效应,而且实时性得到提高;该算法通过自适应透射率修复的图像去雾算法较好的解决了暗原色先验原理在明亮区域失效的问题,扩展了其适用范围,能够处理各类不同场景的雾化图像。

由图4可知,(c)和(d)在包含天空区域处发生了较为严重的色彩失真;而(e)和(f)在天空区域并没有发生色彩失真;但是(f)相对于(e)而言,色彩更为明亮,尤其是近景区域。从图5实验结果中也可以非常清晰的得到上述结论。

从表1和表2中的各项评价指标可知,本发明算法在各项指标上都优于指导滤波算法;虽然在一些指标上,双边滤波算法和梯度双边滤波算法的指标甚至好于本发明算法,但是这些客观的评价指标只有在主观判断不容易判别好坏的情况下才有意义,而图4和图5中的双边滤波算法和梯度双边滤波算法在包含天空的区域发生了色彩失真,因此,比较双边滤波算法和梯度双边滤波算法的评价指将标失去意义。

表1第一组实验结果(即图4)指标比较

表2第二组实验结果(即图5)指标比较

综上所述,本发明算法通过多尺度窗口自适应暗原色估计能够较好的解决“halo”效应,而且在景深边缘处提取了更多的边缘细节,实时性较高;另外,通过自适应透射率修复的图像去雾算法,较好的解决了基于暗原色先验原理的图像去雾算法在包含天空和白色物体等区域失效的问题,扩展了暗原色先验原理的适用范围,使其能够处理各类不同场景的雾化图像。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1