基于暗通道的天空区域分割方法与流程

文档序号:13663148阅读:1285来源:国知局

本发明涉及一种计算机图像处理方法。



背景技术:

在计算机视觉领域,图像分割、特征提取和目标识别是最常见的三个经典问题。图像分割是将有意义的特征和目标区域从整副图像中提取出来的过程,这些特征可以是图像的原始特征,如像素的灰度值、物体轮廓、颜色和纹理等;也可以是空间频谱,如直方图特征。图像分割的目的是把图像划分成若干互不相交的区域,使各区域具有一致性,而相邻区域间的属性特征有明显的差别,图像分割的应用非常广泛,几乎出现在有关图像处理的所有领域,并涉及各种类型。

近些年来,中国等发展中国家经常遭受雾霾等恶劣天气的侵袭,在这种极端天气情况下,图像采集设备会受到大气中固体小颗粒和小液滴的影响,拍摄的图像往往丢失主要信息,从而导致图像采集设备无法拍摄到清晰的图像。各国的研究人员针对降质图像的增强技术进行了大量的研究,其中以暗通道先验去雾算法效果最显著,但是该算法对于天空区域的处理并不是很好,经常会出现色彩失真现象。所以需要对天空区域进行优化,但是需要确定天空区域的具体位置,这时候就需要图像分割算法。目前还没有专门针对天空区域的分割算法,于是本发明提出了一种专门针对天空区域的分割方法。



技术实现要素:

本发明要克服现有技术的上述缺点,提供一种基于暗通道的天空区域分割方法,较好地实现天空区域和非天空区域的分离。

本发明的目的在于设计一种基于暗通道的天空区域分割方法,首先根据原图像计算暗通道图,然后对暗通道图进行粗分割,分割后的结果为天空区域和非天空区域的粗略结果,最后找到天空和非天空错分的边界块,对这些边界块进行细分和二次划分,很好地实现了天空区域和非天空区域的分离。

基于暗通道的天空区域分割方法,步骤如下:

步骤1.评估图像暗通道;

对天空区域进行处理首先需要确定天空区域的位置,所以需要对天空区域进行分割。然而天空区域常常作为背景难以直接进行分割,所以从特征明显的前景(即非天空区域)入手,确定了非天空区域的位置也就确定了天空区域的位置。由上文提到暗通道先验是普遍存在于无雾非天空场景当中的,反而言之暗通道先验存在的地方基本就是非天空区域。

暗通道的定义如公式(1)所示。需要根据暗通道的定义算出暗通道图,计算输入图像i的暗通道图,i的暗通道图jdark的可以通过下式进行计算:

其中,ic表示某一图像块ω(x)颜色通道图,这里指的是输入的有雾图像,y指的是它任意一个像素点,x表示暗通道图的任意一个像素点,c是指r、g、b三通道中任意一个通道。所以暗通道图jdark可以由i经过两步最小化操作得到,具体步骤如下:

11.对输入图像每个像素进行遍历,生成一幅新的数字图像,该图像的像素值为每个像素r、g、b三个通道值中的最小值,称为最小颜色通道图。

12.将求得的最小颜色通道图进行遍历,以ω(x)为大小进行分块,建议块大小取10×10。遍历整个图像块ω(x),求出整个图像块中所有像素最小的像素值,把这个值作为整个图像块的像素值,由此可生成得到暗通道图。

步骤2.粗略分割天空区域;

本发明按照图像上灰度值的分布,将图像分成天空区域和非天空区域两部分,其中天空区域就是我们要按照阈值分割出来的部分。天空区域和飞天空区域的分界值就是我们要求出的阈值。遍历不同的阈值,计算不同阈值下对应的背景和前景之间的类内方差,当类内方差取得极大值时,此时对应的阈值就是所求的阈值。粗略分割天空区域的具体步骤如下所示:

21.设图像包含l个灰度级(0,1…,l-1),灰度值为i的的象素点数为ni,图像总的像素点数为n=n0+n1+...+nl-1。灰度值为i的点的概为:

p(i)=ni/n(2)

22.首先设定一个初始阈值,这里取0.3。将图像分为天空区域c1和非天空区域c2两部分,这时候设定的阈值是随意设定的,分割必然不准确。

23.通过设定的阈值求出拟分割的天空区域和非天空区域像素的类间方差,这个值代表着两个区域的差别度大小。根据公式(3)计算两区域的类间方差:

δ=a1*a2(u1-u2)2(3)

其中,a1,a2分别为c1,c2区域与图像总面积之比,u1,u2分别为c1,c2的均值。它们的计算方式为:

a1=sum(p(i))*i(4)

u1=sum(i*p(i))/a1,u2=sum(i*p(i))/a2(5)

24.通过求出的类间方差去调整设定的阈值,将阈值遍历0到255所有可以取到的灰度级,求出类间方差最小的阈值。该阈值就是本发明需要的粗分割阈值。

步骤3.天空区域二次细分;

暗通道图是分块的,而暗通道又是将整块区域都使用非天空区域的小像素值作为整块的像素值,必然导致一部分天空区域错分割为非天空区域。所以本发明提出了“迭代分割法”继续细分天空区域,“迭代分割法”旨在将错分的区域重新进行划分,主要包括两个部分。一是要找到错分区域,二是需要进行二次划分。首先将粗略分割天空区域后的图像进行轮廓提取,找到边界线,然后由边界线向内取一个块大小作为错分区域。然后把该块平均分成四个更小块,依次判断该小块是否属于天空区域,具体步骤如下:

31.判断小块是否属于天空区域,需要建立小块和天空区域的联系。一般情况下,大气光a的取值和天空部分应该是非常接近的,而那些符合暗通道先验的地方则远离天空区域。所以本文定义了一个天空相似度的概念st,它是指某像素点跟大气光强相似的百分比,它使用像素值和大气光a取值的差值来近似表示距离大气光的远近程度。

32.接下来计算整个目标块像素最大值maxvalue和最小值minvalue,计算这两个像素的天空相似度,通过这两个点的计算判断整个块是否属于天空区域。

33.设定相似度阈值tt,一般取0.6.如果maxvalue和minvalue两个值一个大于阈值一个小于阈值,则说明目标块有部分区域属于天空,有部分区域属于非天空,该目标块需要继续细分,细分到整个块只有一个像素则返回上一层。另外两种情况都可以直接进行划分,如果maxvalue和minvalue均小于tt,则该块属于天空区域;如果maxvalue和minvalue均大于tt,则该块属于非天空区域。

本发明的优点是:

(1)本发明对原图像计算暗通道图时,抓住天空区域与非天空区域的显著特点,对于天空区域和非天空区域的边界处的暗通道块大小进行细分,分割结果精细,分割效果好。

(2)本发明是专门对于天空区域和非天空区域分割的方法,填补了天空区域分割方法的空白。

附图说明

图1是本发明方法的流程图。

具体实施方式

下面结合附图,进一步说明本发明方法的技术方案。

基于暗通道的天空区域分割方法如图1所示,步骤如下:

步骤1.评估图像暗通道;

对天空区域进行处理首先需要确定天空区域的位置,所以需要对天空区域进行分割。然而天空区域常常作为背景难以直接进行分割,所以从特征明显的前景(即非天空区域)入手,确定了非天空区域的位置也就确定了天空区域的位置。由上文提到暗通道先验是普遍存在于无雾非天空场景当中的,反而言之暗通道先验存在的地方基本就是非天空区域。

暗通道的定义如公式(1)所示。需要根据暗通道的定义算出暗通道图,计算输入图像i的暗通道图,i的暗通道图jdark的可以通过下式进行计算:

其中,ic表示某一图像块ω(x)颜色通道图,这里指的是输入的有雾图像,y指的是它任意一个像素点,x表示暗通道图的任意一个像素点,c是指r、g、b三通道中任意一个通道。所以暗通道图jdark可以由i经过两步最小化操作得到,具体步骤如下:

11.对输入图像每个像素进行遍历,生成一幅新的数字图像,该图像的像素值为每个像素r、g、b三个通道值中的最小值,称为最小颜色通道图。

12.将求得的最小颜色通道图进行遍历,以ω(x)为大小进行分块,建议块大小取10×10。遍历整个图像块ω(x),求出整个图像块中所有像素最小的像素值,把这个值作为整个图像块的像素值,由此可生成得到暗通道图。

步骤2.粗略分割天空区域;

本发明按照图像上灰度值的分布,将图像分成天空区域和非天空区域两部分,其中天空区域就是我们要按照阈值分割出来的部分。天空区域和飞天空区域的分界值就是我们要求出的阈值。遍历不同的阈值,计算不同阈值下对应的背景和前景之间的类内方差,当类内方差取得极大值时,此时对应的阈值就是所求的阈值。粗略分割天空区域的具体步骤如下所示:

21.设图像包含l个灰度级(0,1…,l-1),灰度值为i的的象素点数为ni,图像总的像素点数为n=n0+n1+...+nl-1。灰度值为i的点的概为:

p(i)=ni/n(2)

22.首先设定一个初始阈值,这里取0.3。将图像分为天空区域c1和非天空区域c2两部分,这时候设定的阈值是随意设定的,分割必然不准确。

23.通过设定的阈值求出拟分割的天空区域和非天空区域像素的类间方差,这个值代表着两个区域的差别度大小。根据公式(3)计算两区域的类间方差:

δ=a1*a2(u1-u2)2(3)

其中,a1,a2分别为c1,c2区域与图像总面积之比,u1,u2分别为c1,c2的

均值。它们的计算方式为:

a1=sum(p(i))*i(4)

u1=sum(i*p(i))/a1,u2=sum(i*p(i))/a2(5)

24.通过求出的类间方差去调整设定的阈值,将阈值遍历0到255所有可以取到的灰度级,求出类间方差最小的阈值。该阈值就是本发明需要的粗分割阈值。

步骤3.天空区域二次细分;

暗通道图是分块的,而暗通道又是将整块区域都使用非天空区域的小像素值作为整块的像素值,必然导致一部分天空区域错分割为非天空区域。所以本发明提出了“迭代分割法”继续细分天空区域,“迭代分割法”旨在将错分的区域重新进行划分,主要包括两个部分。一是要找到错分区域,二是需要进行二次划分。首先将粗略分割天空区域后的图像进行轮廓提取,找到边界线,然后由边界线向内取一个块大小作为错分区域。然后把该块平均分成四个更小块,依次判断该小块是否属于天空区域,具体步骤如下:

31.判断小块是否属于天空区域,需要建立小块和天空区域的联系。一般情况下,大气光a的取值和天空部分应该是非常接近的,而那些符合暗通道先验的地方则远离天空区域。所以本文定义了一个天空相似度的概念st,它是指某像素点跟大气光强相似的百分比,它使用像素值和大气光a取值的差值来近似表示距离大气光的远近程度。

32.接下来计算整个目标块像素最大值maxvalue和最小值minvalue,计算这两个像素的天空相似度,通过这两个点的计算判断整个块是否属于天空区域。

33.设定相似度阈值tt,一般取0.6.如果maxvalue和minvalue两个值一个大于阈值一个小于阈值,则说明目标块有部分区域属于天空,有部分区域属于非天空,该目标块需要继续细分,细分到整个块只有一个像素则返回上一层。另外两种情况都可以直接进行划分,如果maxvalue和minvalue均小于tt,则该块属于天空区域;如果maxvalue和minvalue均大于tt,则该块属于非天空区域。

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