一种基于暗原色先验的单幅图像去雾方法与流程

文档序号:12472025阅读:408来源:国知局
本发明涉及图像处理
技术领域
,特别涉及一种基于暗原色先验的单幅图像去雾方法。
背景技术
:目前对于雾天图像的处理方法主要分为两类:雾天图像复原和雾天图像增强。雾天图像的增强方法不考虑图像退化的本质原因,而是基于主观视觉感受,能有效地提高雾天图像的对比度,突出图像的细节,改善图像的视觉效果,适用范围广,但对于突出部分的信息可能会造成一定损失。雾天图像复原方法根据雾天对图像成像的影响机制,建立图像退化模型,反向推导出图像复原模型,计算获得不受雾影响的最优估计值,得到清晰的图像。近年来,众多研究者致力于单幅降质图像的去雾研究,由于单幅图像中雾的深度信息未知,一般需要借助先验或假设来达到去雾的目的。这方面的早期工作是由Tan等完成的,他们通过统计发现无雾图像比有雾图像具有更高的对比度,以及局部区域的环境光为常数这两个先验条件,提出一种旨在增强图像对比度的去雾方法,在光学原理上达到去雾,但忽视了透射率,处理结果的一些色彩经常会出现过度饱和的现象。Fattal等利用透射率和物体表面阴影局部不相关的假设条件来估计场景反照率,并推导出介质透射率,恢复出场景光,取得了很好的效果,但该方法需要足够的颜色信息以及差异性,当雾很浓时,该方法估计出的透射率就不可靠。何凯明等基于对户外无雾图像数据库的统计规律,提出一种简单有效的暗原色先验图像去雾算法,能够明显提高雾天户外图像清晰度,均匀地调整图像整体的色彩亮度,从而达到良好的视觉效果,对一般户外图像取得了很好的去雾效果,受到研究者的重点关注。暗原色先验去雾方法存在的不足:1)传统的暗原色先验算法采用软抠图细化透射率,由于采用高精度插值求解大型稀疏矩阵,带来了巨大的运算量,不利于工程上的应用;2)暗原色先验算法建立在暗原色假设之上,对不满足这个假设的明亮区域,算法估计的透射率偏小,复原图像出现色彩失真以及整体偏暗的现象。技术实现要素:本发明的目的旨在解决上述技术缺陷,改善暗原色先验算法的效果以及提高算法效率。为了达到上述目的,本发明提出一种基于暗原色先验的单幅图像去雾方法,包括以下几个步骤:S1:自适应求出含雾图像I的暗原色图Idark;S1.1:求出最小颜色通道Ic,具体公式如下:Ic(x,y)=minc∈{R,G,B}(I(x,y))]]>其中(x,y)表示R、G、B三通道图像中的像素点。S1.2:对最小暗通道图Idark进行自适应分块,并进行最小值滤波,得到暗原色图Idark。其中自适应分块大小为:block=round(max(3,M×1%,N×1%))M,N分别为最小颜色通道Ic的长和宽,暗原色图Idark的具体公式为:Idark(x,y)=minc∈{R,G,B}(min(x,y)∈block(I(x,y)))]]>S2:对暗原色图Idark进行图像分割,获得包含天空区域和非天空区域的图像,具体分割方法如下:S2.1:求出暗原色图像Idark的亮度图B,并采用最大类间方差法(OTSU)对亮度图像B进行自适应阈值分割,得到分割后的二值图像Bbinary,公式如下:Bbinary(x,y)=0,th1<λ11,th1≥λ1]]>其中th1是亮度图像B在坐标(x,y)处的亮度值,λ1是亮度图像B的最大类间方差分割阈值。S2.2:求出暗原色图像Idark的灰度梯度图G,并采用最大类间方差法(OTSU)对梯度图像G进行自适应阈值分割,得到分割后的二值图像Gbinary,公式如下:Gbinary(x,y)=0,th2≥λ21,th2<λ2]]>其中th2是梯度图像G在坐标(x,y)处的梯度值,th2是梯度图像G的最大类间方差分割阈值。S2.3:将分割后的亮度二值图Bbinary及梯度二值图Gbinary作并运算,得到分割后的天空区域和非天空区域二值图像Ybinary,公式如下:Ybinary(x,y)=0,th1<λ1,th2≥λ21,th1≥λ1,th2<λ2]]>S3:利用上述分割出的天空区域重估大气光值A,把天空区域亮度最大的前50%的亮度均值作为大气光的估计值。S4:粗略估计透射率S4.1:利用何凯明原方法粗略估计非天空区域的透射率具体公式如下:t~notsky(x,y)=1-ωminc∈{r,g,b}(min(x,y)∈block(Ic(x,y)Ac))]]>其中ω(0<ω≤1)是去雾参数,是可调参数,用来选择性的保留远方景物中的小部分雾,使得复原图像更加自然,当ω=1时表示彻底去雾。S4.2:利用蒋建国提出的K容差机制粗略估计天空区域的透射率具体公式如下:t~sky(x,y)=K|Ac-Idark(x,y)|(1-ωminc∈{R,G,B}(min(x,y)∈blockIc(x,y)Ac))]]>其中K表示容差参数,是可调参数,用来调整天空区域亮度和大气光值之间的容差值。S4.3:利用分割后的天空区域和非天空区域的二值图像Ybinary将天空区域和非天空区域透射率进行合并,得到粗略透射率计算公式如下:t~(x,y)=1-ωminc∈{R,G,B}(min(x,y)∈block(Ic(x,y)Ac)),Ybinary(x,y)=0K|Ac-Idark(x,y)|(1-ωminc∈{R,G,B}(min(x,y)∈blockIc(x,y)Ac)),Ybinary(x,y)=1]]>S5:采用引导滤波细化透射率,以含雾图像I的灰度图Igray作为引导图像,通过如下公式得到细化的透射率t(x,y):t(x,y)=akIigray+bk,∀i∈ξk]]>其中t(x,y)是图像Iigray中以k为中心像素的局部窗口ξk的线性变换,通过求解线性因数(ak,bk)的最优解,使输入图像p与输出图像t(x,y)之间的差值最小化。最后求出输出图像如下:t(x,y)=1|ξ|Σk|i∈ξk(akIigray+bk)=a‾iIigray+b‾i]]>其中μk和δk表示图像Igray在局部窗口ξ中的均值和方差,|ξ|是窗口ξk中的像素个数。S6:利用大气散射模型得到复原的清晰图像J,具体公式为:J(x,y)=I(x,y)-Amax(t(x,y),t0)+A]]>当t(x,y)接近于0时,与实际不符,因此为透射率t(x,y)设置一个下限t0S7:采用引导滤波进一步增强复原图像J的边缘信息,以复原图像J作为引导滤波器的输入,含雾图像I作为引导图像,实现引导滤波器平滑滤波的作用,得到边缘模糊的输出图像q0,最终复原图像Jfinary计算公式如下:Jfinally(x,y)=M(J(x,y)-q0(x,y))+q0(x,y)其中M是边缘增强倍数,是一个可调参数。有益效果本发明通过拓展暗原色先验算法的适用范围,利用雾天图像中天空区域的特征,采用自适应阈值的方法分割出天空去,并分别估计透射率,改善了暗原色先验在天空区域透射率偏小的弊端,克服了复原图像在天空等明亮区域色彩失真的现象;利用分割出的天空区域重新估计大气光值,来改善复原图像整体偏暗的弊端;利用引导滤波细化透射率,极大地提高了算法的运行速率;最后,采用引导滤波的方法增强图像边缘,提高图像的清晰度。附图说明图1为本发明流程图;具体实施方式下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。如图1所示,本发明的实施例的基于暗原色先验的单幅图像去雾改方法,包括以下几个步骤:步骤S1,求出含雾图像I的暗原色图Idark。在本步骤的一个实施例中,首先,读入含雾图像I,然后采用自适应分块的方法求出暗原色图Idark,具体处理方法如下:S1.1:求出最小颜色通道Ic,具体公式如下:Ic(x,y)=minc∈{R,G,B}(I(x,y))]]>其中(x,y)表示R、G、B三通道图像中的像素点。S1.2:对最小暗通道图Idark进行自适应分块,并进行最小值滤波,得到暗原色图Idark。其中自适应分块大小为:block=round(max(3,M×1%,N×1%))M,N分别为最小颜色通道Ic的长和宽,暗原色图Idark的具体公式为:Idark(x,y)=minc∈{R,G,B}(min(x,y)∈block(I(x,y)))]]>步骤S2,对暗原色图Idark进行自适应阈值分割。在本步骤的一个实施例中,对暗原色图Idark进行自适应阈值分割,得到天空区域和非天空区域的二值图像Ybinary,具体分割方法如下:S2.1:求出暗原色图像Idark的亮度图B,并采用最大类间方差法(OTSU)对亮度图像B进行自适应阈值分割,得到分割后的二值图像Bbinary,公式如下:Bbinary(x,y)=0,th1<λ11,th1≥λ1]]>其中th1是亮度图像B在坐标(x,y)处的亮度值,λ1是亮度图像B的最大类间方差分割阈值。S2.2:求出暗原色图像Idark的灰度梯度图G,并采用最大类间方差法(OTSU)对梯度图像G进行自适应阈值分割,得到分割后的二值图像Gbinary,公式如下:Gbinary(x,y)=0,th2≥λ21,th2<λ2]]>其中th2是梯度图像G在坐标(x,y)处的梯度值,th2是梯度图像G的最大类间方差分割阈值。S2.3:将分割后的亮度二值图Bbinary及梯度二值图Gbinary作并运算,得到分割后的天空区域和非天空区域二值图像Ybinary,公式如下:Ybinary(x,y)=0,th1<λ1,th2≥λ21,th1≥λ1,th2<λ2]]>步骤S3,重估大气光值A利用上述分割出的天空区域重估大气光值,把天空区域亮度最大的前50%的亮度均值作为大气光的估计值。步骤S4,粗略估计透射率对分割出的天空区域和非天空区域采用不同的方式粗略估计透射率,然后利用二值图像Ybinary将天空区域和非天空区域透射率进行合并,得到粗略透射率具体操作步骤如下:S4.1:利用何凯明原方法粗略估计非天空区域的透射率具体公式如下:t~notsky(x,y)=1-ωminc∈{R,G,B}(min(x,y)∈block(Ic(x,y)Ac))]]>其中ω(0<ω≤1)是去雾参数,是可调参数,用来选择性的保留远方景物中的小部分雾,使得复原图像更加自然,当ω=1时表示彻底去雾。S4.2:利用蒋建国提出的K容差机制粗略估计天空区域的透射率具体公式如下:t~sky(x,y)=K|Ac-Idark(x,y)|(1-ωminc∈{R,G,B}(min(x,y)∈blockIc(x,y)Ac))]]>其中K表示容差参数,是可调参数,用来调整天空区域亮度和大气光值之间的容差值。S4.3:利用分割后的天空区域和非天空区域的二值图像Ybinary将天空区域和非天空区域透射率进行合并,得到粗略透射率计算公式如下:t~(x,y)=1-ωminc∈{R,G,B}(min(x,y)∈block(Ic(x,y)Ac)),Ybinary(x,y)=0K|Ac-Idark(x,y)|(1-ωminc∈{R,G,B}(min(x,y)∈blockIc(x,y)Ac)),Ybinary(x,y)=1]]>步骤S5,采用引导滤波细化透射率。以含雾图像I的灰度图Igray作为引导图像,通过如下公式得到细化的透射率t(x,y):t(x,y)=akIigray+bk,∀i∈ξk]]>其中t(x,y)是图像Iigray中以k为中心像素的局部窗口ξk的线性变换,通过求解线性因数(ak,bk)的最优解,使输入图像p与输出图像t(x,y)之间的差值最小化。最后求出输出图像如下:t(x,y)=1|ξ|Σk|i∈ξk(akIigray+bk)=a‾iIigray+bi‾]]>其中μk和δk表示图像Igray在局部窗口ξ中的均值和方差,|ξ|是窗口ξk中的像素个数。步骤S6,复原无雾图像J。利用大气散射模型得到复原的清晰图像J,具体公式为:J(x,y)=I(x,y)-Amax(t(x,y),t0)+A]]>当t(x,y)接近于0时,与实际不符,因此为透射率t(x,y)设置一个下限t0步骤S7,引导滤波边缘增强。采用引导滤波进一步增强复原图像J的边缘信息,以复原图像J作为引导滤波器的输入,含雾图像I作为引导图像,实现引导滤波器平滑滤波的作用,得到边缘模糊的输出图像q0,最终复原图像Jfinary计算公式如下:Jfinally(x,y)=M(J(x,y)-q0(x,y))+q0(x,y)其中M是边缘增强倍数,是一个可调参数。尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1