一种图像去雾方法及系统与流程

文档序号:11865870阅读:532来源:国知局
一种图像去雾方法及系统与流程

本发明涉及图像领域,特别是涉及一种图像去雾方法及系统。



背景技术:

雾是一种常见的自然现象,它会使大气的能见度降低,景物图像发生退化,在雾天拍摄的图像内容模糊,对比度下降,这将会严重影响户外图像采集与处理,使工作无法正常进行。因此,对这种自然现象所引起的图像质量下降的问题展开图像信号处理与研究具有普遍意义。另一方面,由于计算机技术的迅猛发展,计算机技术的运算速度越来越快,图像处理系统的价格日益下降,随着计算机视觉与图像处理技术的快速发展,户外视觉系统的研究与应用也在飞速增长。从而图像处理技术得以广泛用于科学和工程领域,为了保证视觉系统全天候正常工作,就必须使系统适应各种天气状况,而雾天图像对比度和颜色都会发生退化,导致这些系统无法正常工作。因此,研究如何对尘雾等恶劣天气下获得的退化图像进行有效的处理,对大气退化图像的复原,和景物细节信息的增强都有着非常重要的现实意义。

目前国内外对有雾图像去雾算法的研究已经取得了很大的进展,目前,雾霾图像复原方法主要分为两类:雾天图像增强和雾天图像复原。雾天图像的增强方法不考虑图像退化原因,适用性广,能有效地提高雾天图像的对比度,增强图像的细节,改善图像的视觉效果,但对于突出部分的信息可能会造成一定损失。雾天图像复原是研究雾天图像退化的物理机制,并建立雾天退化模型,反演退化过程,补偿退化过程造成的失真,以便获得未经干扰退化的无雾图像或无雾图像的最优估计值,从而改善雾天图像的质量。这种方法针对性强,得到的去雾效果自然,一般不会有信息损失,处理的关键点是模型中参数的估计。对于每一类方法,按照去雾方法的相似性进一步归纳为不同的子类方法:基于图像处理的雾天图像增强方法分为全局化的图像增强方法和局部化的图像增强方法;基于物理模型的雾天图像复原方法则包括基于偏微分方程的雾天图像复原、基于深度关系的雾天图像复原和基于先验信息的雾天图像复原。

单幅图去雾是近些年研究比较热的,方法层出不穷,但基本都是在以下几种经典算法上进行的演变:08年Tan等人通过统计研究发现,无雾图像相对于有雾图像必定具有较高的对比度,通过最大化局部对比度来消除雾。假设局部区域环境光为常数。在马尔可夫模型框架下,构造关于边缘强度的代价函数,使用图分割理论来估计最优光照。该算法旨在增强图像的对比度。尽管明显地改善了图像的可见性,然而由于没有从物理模型上恢复真实场景反照率,所以恢复后的图像的颜色显得过于饱和,且在景深突变的边界产生严重的Halo效应。09年何恺明博士提出一种基于暗通道先验的去雾算法,简单而有效,顿时引起了去雾界的广泛关注,但是这种方法也存在一些不足之处:它采用soft matting的思路来平滑大气传输函数,效果好但是复杂度过大,不适用实际操作,而且它不能处理天空区域。



技术实现要素:

本发明的目的是提供一种改进的基于暗通道先验处理天空区域的图像去雾方法及系统,能够很好的实现天空区域的去雾。

为实现上述目的,本发明提供了如下方案:

一种图像去雾方法,包括:

获取包含天空区域的有雾图像;

确定所述有雾图像中的天空区域;

建立大气散射模型;

根据所述天空区域占整个所述有雾图像的比例确定所述大气散射模型中的大气光值,所述大气光值为无穷远处的大气光强度;

根据所述大气散射模型确定所述有雾图像的透射率;

获取所述有雾图像的观测强度;

根据所述大气光值、所述有雾图像的观测强度和所述有雾图像的透射率计算得到去雾后的图像。

可选的,所述确定所述有雾图像中的天空区域,具体包括:

计算所述有雾图像中各像素点的梯度值;

将所述梯度值小于第一阈值的像素点标记为1,所述梯度值大于等于第一阈值的像素点标记为0,得到二值图像;

用一圆形模块对所述二值图像进行腐蚀,得到新的二值图像;

利用区域增长算法对所述新的二值图像进行处理,得到所述新的二值图像所有的联通区域;

计算各所述联通区域在所述有雾图像上所对应的像素点的平均亮度;

将所述平均亮度大于第二阈值的联通区域标记为天空区域;

将非天空区域中的满足设定条件的像素点标记为天空区域;

对所述天空区域中的漏洞进行填充。

可选的,所述根据天空区域占整个所述有雾图像的比例确定所述大气散射模型中的大气光值,具体包括:

计算所述天空区域占整个所述有雾图像的比例;

判断所述比例是否小于设定比例;

如果否,则计算所述天空区域中像素点的光强度的平均值,将所述平均值标记为所述大气光值;

如果是,则获取所述有雾图像暗通道中亮度从高到低排列时,排前0.1%的像素点,并获取所述排前0.1%的像素点在所述有雾图像中的光强度值,将所述光强度值中的最大光强度值标记为所述大气光值。

可选的,所述根据所述大气散射模型确定所述有雾图像的透射率,具体包括:

利用暗通道先验算法估算所述有雾图像的透射率,得到透射率估算函数;

获取固定透射率值;

对所述固定透射率值与所述透射率估算函数进行Alpha混合,得到合理的透射率;

利用导向滤波算法对所述合理的透射率进行优化处理。

可选的,所述根据所述大气光值、所述有雾图像的观测强度和所述有雾图像的透射率计算得到去雾后的图像,具体包括:

根据公式计算得到所述有雾图像去雾后的图像J(x),其中,A为所述大气光值,t(x)为所述有雾图像的折射率,I(x)为所述有雾图像的观测强度。

一种图像去雾系统,所述系统包括:

图像获取单元,用于获取包含天空区域的有雾图像;

天空区域确定单元,用于确定所述有雾图像中的天空区域;

大气散射模型建立单元,用于建立大气散射模型;

大气光值确定单元,用于根据所述天空区域占整个所述有雾图像的比例确定所述大气散射模型中的大气光值,所述大气光值为无穷远处的大气光强度;

透射率确定单元,用于根据所述大气散射模型确定所述有雾图像的透射率;

观测强度获取单元,用于获取所述有雾图像的观测强度;

去雾图像计算单元,用于根据所述大气光值、所述有雾图像的观测强度和所述有雾图像的透射率计算得到去雾后的图像。

可选的,所述天空区域确定单元,具体包括:

梯度值计算子单元,用于计算所述有雾图像中各像素点的梯度值;

二值图像确定子单元,用于将所述梯度值小于第一阈值的像素点标记为1,所述梯度值大于等于第一阈值的像素点标记为0,得到二值图像;

新二值图像确定子单元,用于采用一圆形模块对所述二值图像进行腐蚀,得到新的二值图像;

联通区域获取子单元,用于利用区域增长算法对所述新的二值图像进行处理,得到所述新的二值图像所有的联通区域;

平均亮度计算子单元,用于计算各所述联通区域在所述有雾图像上所对应的像素点的平均亮度;

第一天空区域确定子单元,用于将所述平均亮度大于第二阈值的联通区域标记为天空区域;

第二天空区域确定子单元,用于将非天空区域中的满足设定条件的像素点标记为天空区域;

孔洞填充子单元,用于对所述天空区域中的漏洞进行填充。

可选的,所述大气光值确定单元,具体包括:

比例计算子单元,用于计算所述天空区域占整个所述有雾图像的比例;

比例判断子单元,用于判断所述比例是否小于设定比例;

第一大气光值计算子单元,用于在所述比例是大于等于设定比例时,计算所述天空区域中像素点的光强度的平均值,将所述平均值标记为所述大气光值;

第二大气光值计算子单元,用于在所述比例是小于设定比例时,获取所述有雾图像暗通道中亮度从高到低排列时,排前0.1%的像素点,并获取所述排前0.1%的像素点在所述有雾图像中的光强度值,将所述光强度值中的最大光强度值标记为所述大气光值。

可选的,所述透射率确定单元,具体包括:

透射率估算子单元,用于利用暗通道先验算法估算所述有雾图像的透射率,得到透射率估算函数;

固定透射率值获取子单元,用于获取固定透射率值;

合理透射率确定子单元,用于对所述固定透射率值与所述透射率估算函数进行Alpha混合,得到合理的透射率;

透射率优化子单元,用于利用导向滤波算法对所述合理的透射率进行优化处理。

可选的,所述去雾图像计算单元,具体包括:

去雾图像计算子单元,用于根据公式计算得到所述有雾图像去雾后的图像J(x),其中,A为所述大气光值,t(x)为所述有雾图像的折射率,I(x)为所述有雾图像的观测强度。

根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明在有雾图像上分割出了有雾图像中的天空区域,正是因为将天空区域分割了出来,才能够对天空区域进行针对性的处理,同时根据天空区域占整个所述有雾图像的比例的不同,采用不同的方法确定大气光值,提高了去雾精度,很好的实现了对天空区域的去雾,此外,本发明采用导向滤波对透射率进行优化,降低了复杂度,提高了图像处理速度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例图像去雾方法流程图;

图2为本发明实施例天空区域确定方法流程图;

图3为本发明实施例大气光值确定方法流程图;

图4为本发明实施例图像透射率确定方法流程图;

图5为对含天空区域的图像采用本发明提供的方法去雾达到的效果与现有技术效果的第一对比图;

图6为对含天空区域的图像的采用本发明提供的方法去雾达到的效果与现有技术效果第二对比图;

图7为不含天空区域的采用本方法提供的方法达到的效果与现有技术效果对比图;

图8为本发明实施例图像去雾系统结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的目的是提供一种能够对有雾图像中的天空区域进行很好的处理的图像去雾方法及系统,而且,此去雾方法及系统具有图像的还原精度高、去雾复杂率低、处理速度快的特点。

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

图1为本发明实施例图像去雾方法流程图,如图1所示,本发明提供的图像去雾方法步骤如下:

步骤101:获取包含天空区域的有雾图像;

步骤102:确定所述有雾图像中的天空区域;

步骤103:建立大气散射模型;

步骤104:根据所述天空区域占整个所述有雾图像的比例确定所述大气散射模型中的大气光值,所述大气光值为无穷远处的大气光强度;

步骤105:根据所述大气散射模型确定所述有雾图像的透射率;

步骤106:获取所述有雾图像的观测强度;从用相机拍摄到的有雾图像中得到图像中各像素点的观测强度;

步骤107:根据所述大气光值、所述有雾图像的观测强度和所述有雾图像的透射率计算得到去雾后的图像。

图2为本发明实施例天空区域确定方法流程图,如图2所示,确定有雾图像中的天空区域具体包括如下步骤:

步骤201:计算有雾图像中各像素点的梯度值;

步骤202:将所述梯度值小于第一阈值的像素点标记为1,所述梯度值大于等于第一阈值的像素点标记为0,得到二值图像;第一阈值可以取0.02,梯度越小的地方表示此处越平滑。通过梯度的大小确定天空区域的位置;

步骤203:用一圆形模块对所述二值图像进行腐蚀,得到新的二值图像,该圆形的半径为设定值,此设定值取3cm;

步骤204:利用区域增长算法对所述新的二值图像进行处理,得到所述新的二值图像所有的联通区域;

步骤205:计算各所述联通区域在所述有雾图像上所对应的像素点的平均亮度;

步骤206:将所述平均亮度大于第二阈值的联通区域标记为天空区域,第二阈值可以去0.81;

步骤207:将非天空区域中的满足设定条件的像素点标记为天空区域,这里所说的设定条件为:1)与天空区域的空间距离小于R,R取3cm;2)与天空区域像素点的强度差小于θ,这里θ取0.02;

步骤208:对所述天空区域中的漏洞进行填充,即填充孔洞。

图3为本发明实施例大气光值确定方法流程图,如图3所示,大气散射模型中的参数大气光值的具体确定方法步骤为:

步骤301:计算所述天空区域占整个所述有雾图像的比例;

步骤302:判断所述比例是否小于设定比例,设定比例可以取5%;

步骤303:如果天空区域占整个所述有雾图像的比例大于等于5%,那么计算所述天空区域中像素点的光强度的平均值,将所述平均值标记为所述大气光值;

步骤304:如果天空区域占整个所述有雾图像的比例小于5%,则获取所述有雾图像暗通道中亮度从高到低排列时,排前0.1%的像素点,并获取所述排前0.1%的像素点在所述有雾图像中的光强度值,将所述光强度值中的最大光强度值标记为所述大气光值。

在常规的大气光值计算方法中,采用图片中最高强度的像素值作为大气光值,但是当图像中存在其他光源时,如灯光,此时,采用此方法得到的大气光值要远大于实际的大气光值,为去雾的处理带来很大的误差,而本发明根据天空区域占整个所述有雾图像的比例来确定大气光值取值方法,如果比例小于5%,则以传统的何恺明提出的方法计算大气光值,即获取所述有雾图像暗通道中亮度从高到低排列时,排前0.1%的像素点,并获取所述排前0.1%的像素点在所述有雾图像中的光强度值,将所述光强度值中的最大光强度值标记为所述大气光值;如果比例大于等于5%,则计算所述天空区域中像素点的光强度的平均值,将所述平均值标记为所述大气光值。如此一来,大气光值的取值更加的准确,有利于提高图像去雾的精度。

图4为本发明实施例图像透射率确定方法流程图,如图4所示,根据大气散射模型的表达式计算透射率的具体步骤如下:

步骤401:利用暗通道先验算法估算所述有雾图像的透射率,得到透射率估算函数;

通道先验算法是2009年HE提出的一种简单而有效的方法来估计t(x)。暗通道先验是假设在大多数的非天空区域,一些像素点至少有一个颜色通道的值有很低的强度。所以,对于无雾图像J(x),定义如下:

<mrow> <msup> <mi>J</mi> <mrow> <mi>d</mi> <mi>a</mi> <mi>r</mi> <mi>k</mi> </mrow> </msup> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>=</mo> <munder> <mrow> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> <mrow> <mi>c</mi> <mo>&Element;</mo> <mo>{</mo> <mi>r</mi> <mo>,</mo> <mi>g</mi> <mo>,</mo> <mi>b</mi> <mo>}</mo> </mrow> </munder> <mrow> <mo>(</mo> <munder> <mrow> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> <mrow> <mi>y</mi> <mo>&Element;</mo> <mi>&Omega;</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> </mrow> </munder> <mo>(</mo> <mrow> <msup> <mi>J</mi> <mi>c</mi> </msup> <mrow> <mo>(</mo> <mi>y</mi> <mo>)</mo> </mrow> </mrow> <mo>)</mo> <mo>)</mo> </mrow> </mrow>

在这里,Ω(x)代表的是以x为中心的局部区域。Jdark(x)表示的是J(x)的暗通道,在无雾图像(除了天空区域)的每个像素点的暗通道都趋近于0.这一先验,已经在09年被何恺明博士证明了。但是在有雾图像,由于添加了大气光,暗通道的强度不再接近0,假设以x为中心的局部区域的像素点有相同的透射率t。由前面的雾天成像模型方程如下:

I(x)=J(x)t(x)+A(1-t(x))

对上式进行最小化操作,方程变成如下:

<mrow> <munder> <mi>min</mi> <mrow> <mi>y</mi> <mo>&Element;</mo> <mi>&Omega;</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> </mrow> </munder> <mrow> <mo>(</mo> <mi>I</mi> <mo>(</mo> <mi>y</mi> <mo>)</mo> <mo>)</mo> </mrow> <mo>=</mo> <mi>t</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <munder> <mi>min</mi> <mrow> <mi>y</mi> <mo>&Element;</mo> <mi>&Omega;</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> </mrow> </munder> <mrow> <mo>(</mo> <mi>J</mi> <mo>(</mo> <mi>y</mi> <mo>)</mo> <mo>)</mo> </mrow> <mo>+</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>t</mi> <mo>(</mo> <mi>x</mi> <mo>)</mo> <mo>)</mo> </mrow> <mi>A</mi> </mrow>

对上式两端除以A并且在三种颜色通道采取最小化操作,有:

根据暗通道,我们有

<mrow> <munder> <mrow> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> <mrow> <mi>c</mi> <mo>&Element;</mo> <mo>{</mo> <mi>r</mi> <mo>,</mo> <mi>g</mi> <mo>,</mo> <mi>b</mi> <mo>}</mo> </mrow> </munder> <mrow> <mo>(</mo> <munder> <mrow> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> <mrow> <mi>y</mi> <mo>&Element;</mo> <mi>&Omega;</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> </mrow> </munder> <mo>(</mo> <mrow> <msup> <mi>J</mi> <mi>c</mi> </msup> <mrow> <mo>(</mo> <mi>y</mi> <mo>)</mo> </mrow> </mrow> <mo>)</mo> <mo>)</mo> </mrow> <mo>=</mo> <msup> <mi>J</mi> <mrow> <mi>d</mi> <mi>a</mi> <mi>r</mi> <mi>k</mi> </mrow> </msup> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>=</mo> <mn>0</mn> </mrow>

所以得到

<mrow> <mi>t</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>=</mo> <mn>1</mn> <mo>-</mo> <munder> <mrow> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> <mrow> <mi>c</mi> <mo>&Element;</mo> <mo>{</mo> <mi>r</mi> <mo>,</mo> <mi>g</mi> <mo>,</mo> <mi>b</mi> <mo>}</mo> </mrow> </munder> <mrow> <mo>(</mo> <munder> <mrow> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> <mrow> <mi>y</mi> <mo>&Element;</mo> <mi>&Omega;</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> </mrow> </munder> <mo>(</mo> <mfrac> <mrow> <msup> <mi>I</mi> <mi>c</mi> </msup> <mrow> <mo>(</mo> <mi>y</mi> <mo>)</mo> </mrow> </mrow> <msup> <mi>A</mi> <mi>c</mi> </msup> </mfrac> <mo>)</mo> <mo>)</mo> </mrow> </mrow>

这样我们就粗略地求得了透射率t(x)。

步骤402:获取固定透射率值;

步骤403:对所述固定透射率值与所述透射率估算函数进行Alpha混合,得到合理的透射率;

由于步骤401中估计的透射率只适用于非天空部分,我们知道暗通道先验不适合在含天空区域,所以在空天区域我们采用一个固定的透射率tsky。但是在我上述的操作中,得到的天空区域是一副蒙版图,某个点并不一定是完全属于天空或者完全不属于天空,因此,这里就可以根据这个值tsky+暗通道求得的值透射率t(x)进行一下Alpha混合,得到更合理的透射率t,如下所示:

t=(tsky*Sky[Y]+t(x)*(255-Sky[Y]))/255

其中tsky是一个固定的透射率值,我们取0.3,在上式中,若即完全属于天空,则该点的透射率为固定值tsky,若即完全不属于天空,计算式的值满足暗通道先验,不影响正常去雾。若介于两者之间,也能很好的得到一个合理的透射率。

步骤404:利用导向滤波算法对所述合理的透射率进行优化处理。

导向滤波是需要引导图的滤波器。滤波过程中包含引导图I,输入图像p(即需要滤波的图像),以及输出图像q。其中I与p可以是同一张图像。每个像素的滤波输出可以表示成一个加权平均的形式:

<mrow> <msub> <mi>q</mi> <mi>i</mi> </msub> <mo>=</mo> <munder> <mo>&Sigma;</mo> <mi>j</mi> </munder> <msub> <mi>W</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>I</mi> <mo>)</mo> </mrow> <msub> <mi>p</mi> <mi>j</mi> </msub> </mrow>

其中i,j为像素索引,W称为滤波核。双边滤波的滤波核为:

<mrow> <msubsup> <mi>W</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> <mrow> <mi>b</mi> <mi>f</mi> </mrow> </msubsup> <mrow> <mo>(</mo> <mi>I</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <msub> <mi>K</mi> <mi>i</mi> </msub> </mfrac> <mi>exp</mi> <mrow> <mo>(</mo> <mo>-</mo> <mfrac> <msup> <mrow> <mo>|</mo> <mrow> <msub> <mi>x</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>x</mi> <mi>j</mi> </msub> </mrow> <mo>|</mo> </mrow> <mn>2</mn> </msup> <msubsup> <mi>&sigma;</mi> <mi>s</mi> <mn>2</mn> </msubsup> </mfrac> <mo>)</mo> </mrow> <mi>exp</mi> <mrow> <mo>(</mo> <mo>-</mo> <mfrac> <msup> <mrow> <mo>|</mo> <mrow> <msub> <mi>I</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>I</mi> <mi>j</mi> </msub> </mrow> <mo>|</mo> </mrow> <mn>2</mn> </msup> <msubsup> <mi>&sigma;</mi> <mi>r</mi> <mn>2</mn> </msubsup> </mfrac> <mo>)</mo> </mrow> </mrow>

引导滤波的关键假设就是引导图I与输出图q之间的局部线性模型:

<mrow> <msub> <mi>q</mi> <mi>i</mi> </msub> <mo>=</mo> <msub> <mi>a</mi> <mi>k</mi> </msub> <msub> <mi>I</mi> <mi>i</mi> </msub> <mo>+</mo> <msub> <mi>b</mi> <mi>k</mi> </msub> <mo>,</mo> <mo>&ForAll;</mo> <mi>i</mi> <mo>&Element;</mo> <msub> <mi>w</mi> <mi>k</mi> </msub> </mrow>

a,b为线性系数,且在局部窗口k中为常数。为确定以上公式中的线性系数,并满足使得q与p的差别最小,转化为最优化问题:

<mrow> <mi>E</mi> <mrow> <mo>(</mo> <msub> <mi>a</mi> <mi>k</mi> </msub> <mo>,</mo> <msub> <mi>b</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <munder> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>&Element;</mo> <msub> <mi>w</mi> <mi>k</mi> </msub> </mrow> </munder> <mrow> <mo>(</mo> <msup> <mrow> <mo>(</mo> <mrow> <msub> <mi>a</mi> <mi>k</mi> </msub> <msub> <mi>I</mi> <mi>i</mi> </msub> <mo>+</mo> <msub> <mi>b</mi> <mi>k</mi> </msub> <mo>-</mo> <msub> <mi>p</mi> <mi>i</mi> </msub> </mrow> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>+</mo> <mo>&Element;</mo> <msubsup> <mi>a</mi> <mi>k</mi> <mn>2</mn> </msubsup> <mo>)</mo> </mrow> </mrow>

以上公式的求解可以利用线性回归:

<mrow> <msub> <mi>a</mi> <mi>k</mi> </msub> <mo>=</mo> <mfrac> <mrow> <mfrac> <mn>1</mn> <mrow> <mo>|</mo> <mi>w</mi> <mo>|</mo> </mrow> </mfrac> <msub> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>&Element;</mo> <msub> <mi>w</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> <mover> <msub> <mi>p</mi> <mi>k</mi> </msub> <mo>-</mo> </mover> </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> <mover> <msub> <mi>p</mi> <mi>k</mi> </msub> <mo>-</mo> </mover> <mo>-</mo> <msub> <mi>a</mi> <mi>k</mi> </msub> <msub> <mi>&mu;</mi> <mi>k</mi> </msub> </mrow>

在这里,μk和表示I在局部窗口wk中的均值和方差。|ω|是窗口内的像素数,pk表示p在窗口wk中的均值。当求的ak和bk后:

<mrow> <msub> <mi>q</mi> <mi>i</mi> </msub> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mo>|</mo> <mi>w</mi> <mo>|</mo> </mrow> </mfrac> <munder> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>:</mo> <mi>i</mi> <mo>&Element;</mo> <msub> <mi>w</mi> <mi>k</mi> </msub> </mrow> </munder> <mrow> <mo>(</mo> <msub> <mi>a</mi> <mi>k</mi> </msub> <msub> <mi>I</mi> <mi>i</mi> </msub> <mo>+</mo> <msub> <mi>b</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>I</mi> <mi>i</mi> </msub> <msub> <mover> <mi>a</mi> <mo>&OverBar;</mo> </mover> <mi>i</mi> </msub> <mo>+</mo> <msub> <mover> <mi>b</mi> <mo>&OverBar;</mo> </mover> <mi>i</mi> </msub> </mrow>

其中,

在对透射率进行优化后,根据公式计算出有雾图像去雾后的图像J(x),其中,A为所述大气光值,t(x)为所述有雾图像的折射率,I(x)为所述有雾图像的观测强度。

去雾后的图片J(x)有点暗淡,这种情况通常是由有雾图像的大气光引起的,大气光让曝光时间不充分。为了解决这一问题,J(x)图像可以通过以下方式进行增强:

先把J(x)转化到HSV色彩模型;用CLAHE算法增强V分量的对比度;把增强的HSV图像转回RGB彩色空间来得到最终的恢复结果。

图5为对含天空区域的图像采用本方法提供的方法去雾达到的效果与现有技术效果对比图,如图5所示,5(a)为拍摄的有雾图像,5(b)为采用何恺明的暗通道去雾算法得到的实验结果,5(c)为采用本发明提供的去雾方法得到的实验结果图。

图6为对另一幅含天空区域的图像的采用本方法提供的方法去雾达到的效果与现有技术效果对比图,如图6所示,6(a)为拍摄的有雾图像,6(b)为采用何恺明的暗通道去雾算法得到的实验结果,6(c)为采用本发明提供的去雾方法得到的实验结果图。

图7为不含天空区域的采用本方法提供的方法达到的效果与现有技术效果对比图,如图7所示,7(a)为拍摄的有雾图像,7(b)为采用何恺明的暗通道去雾算法得到的实验结果,7(c)为采用本发明提供的去雾方法得到的实验结果图。

从图5、图6中可以看到,本发明提供的去雾方法在处理天空区域部分明显比何恺明的算法好,而对于图7不含天空区域的原图,可以看到采用本发明提供的方法得到实验结果与何恺明的方法的结果几乎一摸一样,可见,本发明提供的去雾方法免疫力更强。

本发明提供的图像去雾方法在有雾图像上分割出了有雾图像中的天空区域,正是因为将天空区域分割了出来,才能够对天空区域进行针对性的处理,同时根据天空区域占整个所述有雾图像的比例的不同,采用不同的方法确定大气光值,提高了去雾精度,很好的实现了对天空区域的去雾,此外,本发明采用导向滤波对透射率进行优化,降低了复杂度,提高了图像处理速度。

为达到上述目的,本发明还提供了一种图像去雾系统,图5为本发明实施例图像去雾系统结构示意图,如图8所示,该系统包括:

图像获取单元801,用于获取包含天空区域的有雾图像;

天空区域确定单元802,用于确定所述有雾图像中的天空区域;

大气散射模型建立单元803,用于建立大气散射模型;

大气光值确定单元804,用于根据所述天空区域占整个所述有雾图像的比例确定所述大气散射模型中的大气光值,所述大气光值为无穷远处的大气光强度;

透射率确定单元805,用于根据所述大气散射模型确定所述有雾图像的透射率;

观测强度获取单元806,用于获取所述有雾图像的观测强度;

去雾图像计算单元807,用于根据所述大气光值、所述有雾图像的观测强度和所述有雾图像的透射率计算得到去雾后的图像。

其中,天空区域确定单元502,具体包括:

梯度值计算子单元,用于计算所述有雾图像中各像素点的梯度值;

二值图像确定子单元,用于将所述梯度值小于第一阈值的像素点标记为1,所述梯度值大于等于第一阈值的像素点标记为0,得到二值图像;

新二值图像确定子单元,用于采用一圆形模块对所述二值图像进行腐蚀,得到新的二值图像;

联通区域获取子单元,用于利用区域增长算法对所述新的二值图像进行处理,得到所述新的二值图像所有的联通区域;

平均亮度计算子单元,用于计算各所述联通区域在所述有雾图像上所对应的像素点的平均亮度;

第一天空区域确定子单元,用于将所述平均亮度大于第二阈值的联通区域标记为天空区域;

第二天空区域确定子单元,用于将非天空区域中的满足设定条件的像素点标记为天空区域;

孔洞填充子单元,用于对所述天空区域中的漏洞进行填充。

大气光值确定单元504,具体包括:

比例计算子单元,用于计算所述天空区域占整个所述有雾图像的比例;

比例判断子单元,用于判断所述比例是否小于设定比例;

第一大气光值计算子单元,用于在所述比例是大于等于设定比例时,计算所述天空区域中像素点的光强度的平均值,将所述平均值标记为所述大气光值;

第二大气光值计算子单元,用于在所述比例是小于设定比例时,获取所述有雾图像暗通道中亮度从高到低排列时,排前0.1%的像素点,并获取所述排前0.1%的像素点在所述有雾图像中的光强度值,将所述光强度值中的最大光强度值标记为所述大气光值。

透射率确定单元505,具体包括:

透射率估算子单元,用于利用暗通道先验算法估算所述有雾图像的透射率,得到透射率估算函数;

固定透射率值获取子单元,用于获取固定透射率值;

合理透射率确定子单元,用于对所述固定透射率值与所述透射率估算函数进行Alpha混合,得到合理的透射率;

透射率优化子单元,用于利用导向滤波算法对所述合理的透射率进行优化处理。

去雾图像计算单元507,具体包括:

去雾图像计算子单元,用于根据公式计算得到所述有雾图像去雾后的图像J(x),其中,A为所述大气光值,t(x)为所述有雾图像的折射率,I(x)为所述有雾图像的观测强度。

本发明提供的图像去雾系统在有雾图像上分割出了有雾图像中的天空区域,正是因为将天空区域分割了出来,才能够对天空区域进行针对性的处理,同时根据天空区域占整个所述有雾图像的比例的不同,采用不同的方法确定大气光值,提高了去雾精度,很好的实现了对天空区域的去雾,此外,本发明采用导向滤波对透射率进行优化,降低了复杂度,提高了图像处理速度。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

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