一种图像去雾方法与流程

文档序号:11808887阅读:239来源:国知局

本发明涉及图像处理技术领域,具体涉及一种图像去雾方法。



背景技术:

目前主流的图像去雾方法,都是基于soft mapping的方式来计算,计算量大,不利于实时的去雾,后来,人们研究出了guide filter的模型,可以计算大气透射率,但是在实际运用的过程中还是不理想,例如图像去雾处理过程繁琐、难度大、时间长、成本高等,并且,处理后的图像的通透性不高。

因此,需要研究一种处理过程简单的图像去雾方法,从而简化处理工艺、提高去雾效率。



技术实现要素:

为了克服以上问题,本发明旨在提供一种图像去雾方法,提高去雾图像的通透性以及简化去雾处理工艺。

为了达到上述目的,本发明提供了一种图像去雾方法,其包括:

步骤01:提供一原始图像,求取该原始图像的每个像素的RGB三个通道中的最小值,从而得到一最小值灰度图;

步骤02:根据所述最小值灰度图,以每个像素为中心设定多个窗口,对每个窗口进行最小值滤波得到暗通道图像;

步骤03:根据暗通道图像,求取对所述暗通道图像的初始透射率;

步骤04:引入引导滤波,并且确定引导滤波所采用的窗口的半径;

步骤05:根据引导滤波所采用的窗口及其半径、以及所述初始透射率,来得到优化透射率;

步骤06:根据所述优化透射率,来复原出去雾后的图像。

优选地,所述步骤06之后,还包括:

步骤061:求取所述去雾后的图像的每个像素的RGB三个通道中的最小值,根据最小值进行最小值滤波得到新的暗通道图像;

步骤062:计算暗通道图像的均值;

步骤063:判断暗通道图像的均值是否为零;

步骤063:若不为零,将所述去雾后的图像的每个像素的RGB三个通道的 值减去所述均值后,得到修正的去雾后的图像。

优选地,所述步骤02中以每个像素为中心所设定的窗口具有一半径,设为r,所述步骤04中的所述引导滤波所采用的窗口的半径设为R,R至少大于4r。

优选地,所述步骤03中,所述初始透射率的求取包括:根据得到t(x,y)=1-I_dark(i,j)/A,

其中,I表示RGB三个通道分别对应的像素值,A为常数,表示全球大气光成分,min(I/A)表示对RGB三个通道最小值化,表示在以半径为r的窗口内进行最小值滤波,y、x表示像素所在位置的坐标,t(x,y)表示透射率,I_dark(i,j)为暗通道图像的像素值。

优选地,A的值的选取包括:首先,找出暗通道图像中像素值最高的点,然后找出像素值最高的电对应于原始图像中的亮度最高的像素点,该像素点的亮度值即为A的值。

优选地,所述暗通道图像中像素值最高的点的数量为所述暗通道图像的像素的数量的0.1~0.2%。

优选地,所述步骤05中,得到优化透射率的过程采用如下公式:

其中,Ii表示引导滤波所采用的引导图的像素,ak、bk为线性系数,ωk为引导滤波所采用的窗口,qi为优化透射率。

优选地,ak、bk的计算如下:

<mrow> <msub> <mi>a</mi> <mi>k</mi> </msub> <mo>=</mo> <mfrac> <mrow> <mfrac> <mn>1</mn> <mrow> <mo>|</mo> <mi>&omega;</mi> <mo>|</mo> </mrow> </mfrac> <msub> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>&Element;</mo> <msub> <mi>&omega;</mi> <mi>k</mi> </msub> </mrow> </msub> <msub> <mi>I</mi> <mi>i</mi> </msub> <msub> <mi>p</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>&mu;</mi> <mi>k</mi> </msub> <msub> <mover> <mi>p</mi> <mo>&OverBar;</mo> </mover> <mi>k</mi> </msub> </mrow> <mrow> <msubsup> <mi>&sigma;</mi> <mi>k</mi> <mn>2</mn> </msubsup> <mo>+</mo> <mo>&Element;</mo> </mrow> </mfrac> </mrow>

<mrow> <msub> <mi>b</mi> <mi>k</mi> </msub> <mo>=</mo> <msub> <mover> <mi>p</mi> <mo>&OverBar;</mo> </mover> <mi>k</mi> </msub> <mo>-</mo> <msub> <mi>a</mi> <mi>k</mi> </msub> <msub> <mi>&mu;</mi> <mi>k</mi> </msub> </mrow>

pi为初始透射率,μk为表示Ii在ωk窗口中的均值,为初始透射率的均值,为Ii在ωk窗口中的方差,是ωk窗口中的像素个数, 为引导图和初始透射率的乘积的均值。

优选地,对于μk、或中分别涉及到的均值的求取,均可以采用以下方式:

对图像中每一列的值累加计算,用得到的列累加值代替列现有值,从而得到每个新的列;对每个新的列中的每个像素所对应的ωk窗口中的值分别进行求和,用求和得到的各个值构成目标列;这里,

对由所述每个目标列构成的图像的每一行的值累加计算,用得到的行累加值代替行现有值,从而得到新的行;对每个新的行中的每个像素对应的ωk窗口 中的值进行求和,用求和得到的值得到各个值构成目标行,从而得到一个新的图像,该新的图像中的每个像素的值为以该像素为中心对应的ωk窗口内的所有像素值的和;

求取每个ωk窗口中μk、或所对应的均值时,直接调用所述新的图像中对应位置的像素值即可。

优选地,所述步骤06具体包括:采用J=(Ii-A)/t’(x,y)+A进行模拟,从而得到去雾后的图像,其中,t’(x,y)为优化透射率,Ii为引导波所采用的引导图像素,J为去雾后的图像,A为常数,表示全球大气光成分。

本发明的图像去雾方法,首先,取得RGB三个通道中的最小值构成的最小值图,然后以每个像素为中心以一定半径为窗口,进行最小值滤波来得到暗通道图像,根据暗通道图像初步计算出暗通道图像的初始透射率,根据初始透射率来迭代运算得到优化透射率,根据优化透射率来模拟复原出整个去雾后的图像;本发明的方法简单,提高了图像去雾效果,降低了工艺时间。

附图说明

图1为本发明的一个较佳实施例的图像去雾方法的流程示意图

具体实施方式

为使本发明的内容更加清楚易懂,以下结合说明书附图,对本发明的内容作进一步说明。当然本发明并不局限于该具体实施例,本领域内的技术人员所熟知的一般替换也涵盖在本发明的保护范围内。

以下结合附图1和具体实施例对本发明作进一步详细说明。需说明的是,附图均采用非常简化的形式、使用非精准的比例,且仅用以方便、清晰地达到辅助说明本实施例的目的。

本实施例中的图像去雾方法包括:

步骤01:提供一原始图像,求取该原始图像的每个像素的RGB三个通道中的最小值,从而得到一最小值灰度图;

步骤02:根据最小值灰度图,以每个像素为中心设定多个窗口,对每个窗口进行最小值滤波得到暗通道图像;

具体的,以最小值灰度图中的每个像素为中心,r为半径作为窗口,对每个窗口进行最小值滤波。

通常暗通道的表达式为:

x、y为原始图像中每个像素所在坐标,根据上述公式得到暗通道图像。根据暗通道先验理论,Jdark趋近于零时,图像的通透性最好。

步骤03:根据暗通道图像,求取对暗通道图像的初始透射率;

具体的,通常的去雾模型为I(x,y)=J(x,y)*T(x,y)+A(1-t(x,y)),I(x,y)为带雾的原始图像,J(x,y)为去雾后的图像,T(x,y)为透射率,A为全球大气光成分;据此,可以得到暗通道图像的透射率然后结合暗通道的表达式(1),得到暗通道图像的透射率t(x,y)=1-I_dark(i,j)/A,其中,I表示RGB三个通道分别对应的像素值,A为常数,表示全球大气光成分,min(I/A)表示对RGB三个通道最小值化,表示在以半径为r的窗口内进行最小值滤波,x、y表示像素所在位置的坐标,t(x,y)表示透射率,I_dark(i,j)为暗通道图像的像素值。需要说明的是,这里的透射率t(x,y)为初始透射率,也就是它只是初略状态下求得的,不是精准的,需要进行优化修正。这里,A的值的选取可以采用以下过程:首先,找出暗通道图像中像素值最高的点,较佳的,暗通道图像中像素值最高的点的数量为暗通道图像的像素的数量的0.1~0.2%,例如暗通道图像的像素为1000个,可以选取像素值最高的前10个点;然后找出像素值最高的电对应于原始图像中的亮度最高的像素点,该像素点的亮度值即为A的值。

步骤04:引入引导滤波,并且确定引导滤波所采用的窗口的半径;

具体的,这里,引进引导滤波,引导滤波所采用的图像可以但不限于为原始图像;得到优化透射率的过程采用如下公式:Ii表示引导滤波所采用的引导图的像素,ak、bk为线性系数,ωk为引导滤波所采用的窗口,qi为优化透射率。

需要说明的是,这里的ωk窗口的半径为R,与之前的r是不一样的,为了保证图像质量,R至少大于4r,因为在边界时,计算半径为r的最小滤波时,有可能存在一个窗宽为4r的边界区域,引入引导滤波后,将ωk窗口的半径为R设为大于4r,能够有效去除边界对去雾复原的影响。

步骤05:根据引导滤波所采用的窗口及其半径、以及初始透射率,来得到优化透射率;

具体的,

,其中,

pi为初始透射率,μk为表示Ii在ωk窗口中的均值,为初始透射率的均值,为Ii在ωk窗口中的方差,|ω|是ωk窗口中的像素个数, 为引导图和初始透射率的乘积的均值。

由以上公式发现,一个权重很大的运算量就是求ωk窗口内的各个均值,例如μk、或的求取过程中都需要求取均值,还需要反复的将每个像素遍历一遍,这样运算量非常大。本实施例中提出了简化方法,可以包括:

首先,对图像中每一列的值累加计算,用得到的列累加值代替列现有值,从而得到每个新的列;对每个新的列中的每个像素所对应的ωk窗口中的值分别进行求和,用求和得到的各个值构成目标列;这里,

然后,对由每个目标列构成的图像的每一行的值累加计算,用得到的行累加值代替行现有值,从而得到新的行;对每个新的行中的每个像素对应的ωk窗口中的值进行求和,用求和得到的值得到各个值构成目标行,从而得到一个新的图像,该新的图像中的每个像素的值为以该像素为中心对应的ωk窗口内的所有像素值的和;

这样,在求取每个ωk窗口中μk或所对应的均值时,可以直接调用新的图像中对应位置的像素值然后除以像素数目即可。

例如,先将一个图像M的每一列的像素值累加,得到一个新的列,hei和len是图像的宽的值和高的值,I(x,y)中分别表示宽的值和高的值;

I0(1,1)=I(1,1)

I0(1,2)=I(1,1)+I(1,2)

I0(1,3)=I0(1,2)+I(1,3)

I0(1,4)=I0(1,3)+I(1,4)

………

I0(1,hei)=I0(1,hei-1)+I(1,hei);

从而获得一个新的列构成的一个新的图像N,该新的图像N长宽和图像M一样,对于每一列的j,在ωk窗口的半径为R时,

当j是从1到R+1的时候,I1(1,j)=I(1,j+R);

当j是从R+2到hei-R的时候,I1(1,j)=I(1,j+R)-I(1,j-R-1);

当j是从hei-R+1到hei的时候,I1(1,j)=I(1,hei)-I1(1,j-R-1);

同以上方法可以得到新的I1(2,j),I1(3,j)……I1(len,j),从而得到目标列;

然后再将目标列构成的图像S的每一行的像素值累加,得到一个新的行,hei和len是图像的宽和高,

I2(1,1)=I1(1,1);I2(2,1)=I1(1,1)+I1(2,1);I2(3,1)=I1(2,1)+I1(3,1);

I2(4,1)=I1(3,1)+I1(4,1);………I2(len,1)=I1(len-1,1)+I1(len,1);

从而获得一个新的行构成的一个新的图像U,该新的图像U的长宽和图像S一样,对于每一行的I,在ωk窗口的半径为R时,

当i是从1到R+1的时候,I3(i,1)=I2(i+R-1,1);

当i是从R+2到len-R的时候,I3(i,1)=I2(i+R,1)-I2(i-r-1,1);

当i是从len-R+1到len的时候,I3(I,1)=I2(len,1)-I2(i-R-1,1);

同以上方法可以得到新的I3(i,2),I3(i,3)……I3(i,hei),

这样就可以得到一个新的图像W,其中每个像素I3(i,j)代表以I(i,j)为中心,R为半径的ωk窗口内的所有像素值的和。

然后,可以采用像素值全为1的图像来处理新的图像W,利用ωk窗口的I3(i,j)像素值来除以1,即可得到该ωk窗口中的像素数量,据此可以进一步求出ak、bk和qi。

步骤06:根据优化透射率,来复原出去雾后的图像。

具体的,得到优化透射率之后,采用J=(Ii-A)/t’(x,y)+A进行模拟,从而得到去雾后的图像,其中,t’(x,y)为优化透射率,Ii为引导波所采用的引导图像素,这里Ii为原始图像的像素,J为去雾后的图像。

为了得到通透性更好的去雾图像,本实施例在复原出去雾后的图像之后还包括:

步骤061:求取去雾后的图像的每个像素的RGB三个通道中的最小值,根据最小值进行最小值滤波得到新的暗通道图像;

步骤062:计算暗通道图像的均值;

步骤063:判断暗通道图像的均值是否为零;

步骤063:若不为零,将去雾后的图像的每个像素的RGB三个通道的值减去均值后,得到修正的去雾后的图像。

虽然本发明已以较佳实施例揭示如上,然所述实施例仅为了便于说明而举例而已,并非用以限定本发明,本领域的技术人员在不脱离本发明精神和范围的前提下可作若干的更动与润饰,本发明所主张的保护范围应以权利要求书所述为准。

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