基于边缘分类加权融合的单幅图像去雾方法与流程

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

技术特征:

1.基于边缘分类加权融合的单幅图像去雾方法,包括如下步骤:

(1)利用相机采集单幅有雾图像;

(2)获取有雾图像的深度边缘:

(2a)利用暗原色先验算法计算有雾图像的初始粗糙透射率tori

(2b)获取初始粗糙透射率tori的直方图,根据该直方图的分布将有雾图像划分为3个区域:远景区域、中景区域、近景区域;

(2c)对(2b)中的3个区域分别设置不同的检测门限值,利用Canny边缘检测算法对有雾图像进行边缘检测,得到初始边缘检测图;

(2d)计算初始边缘检测图中所有边缘的长度及其总数目,并将最短边缘的长度记为L1,最长边缘的长度记为L2,边缘的总数目记为N;

(2e)设置第一阈值T1=N/4,第二阈值T2=10,将边缘长度在区间[L1,L1+T1)内的边缘定义为短边缘,将边缘长度在区间[L1+T1,L2–T2)内的边缘定义为中等长度边缘,将边缘长度在区间[L2–T2,L2]内的边缘定义为长边缘;

(2f)计算初始边缘检测图中所有边缘的方向变化率,并将方向变化率的中值记为V,边缘的方向变化率大于V的边缘定义为方向变化频繁的边缘;

(2g)对初始边缘检测图中短边缘和方向变化频繁的中等长度边缘进行剔除,得到最终的深度边缘图;

(3)根据(2)中得到的深度边缘图,将有雾图像划分为深度边缘区域和非深度边缘区域,即以深度边缘上的每个像素点为中心形成一个大小为p×p的块,所有以深度边缘为中心的块构成深度边缘区域,图像的其余区域构成非深度边缘区域,p的取值15;

(4)计算有雾图像的修正暗原色值:

(4a)分别计算有雾图像的像素级暗原色值I1(x)和块级暗原色值Ip(x),其中,x∈ΩM×N,ΩM×N表示一幅M×N的有雾图像的整个图像域,M、N分别是有雾图像的高度和宽度,x是整个图像域中的任一像素;

(4b)计算有雾图像修正暗原色值的权值W(x):

<mrow> <mi>W</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>=</mo> <mi>exp</mi> <mrow> <mo>(</mo> <mo>-</mo> <mfrac> <msup> <mrow> <mo>(</mo> <msub> <mi>I</mi> <mn>1</mn> </msub> <mo>(</mo> <mi>x</mi> <mo>)</mo> <mo>-</mo> <msub> <mi>I</mi> <mi>p</mi> </msub> <mo>(</mo> <mi>x</mi> <mo>)</mo> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mrow> <mi>&sigma;</mi> <msup> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </mfrac> <mo>)</mo> </mrow> <mo>,</mo> </mrow>

其中,exp(·)表示以自然常数e为底的指数操作;σ(x)表示像素x处的“方差”,σ(x)的取值依赖于像素x是位于深度边缘区域或是非深度边缘区域,在深度边缘区域内,σ(x)取值范围是0.5-2,在非深度边缘区域内,σ(x)取值范围是0.05-0.5;

(4c)计算有雾图像的修正暗原色值Ism(x):

Ism(x)=W(x)I1(x)+(1-W(x))Ip(x);

(5)计算有雾图像的优化透射率:

(5a)利用暗原色先验算法计算有雾图像的大气光值A;

(5b)计算有雾图像非深度边缘区域的平滑暗原色值

<mrow> <msubsup> <mi>I</mi> <mrow> <mi>s</mi> <mi>m</mi> </mrow> <mi>N</mi> </msubsup> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mi>T</mi> <mi>W</mi> <mn>1</mn> </mrow> </mfrac> <mo>(</mo> <munder> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>&Element;</mo> <mi>S</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> </mrow> </munder> <mi>W</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> <msub> <mi>I</mi> <mn>1</mn> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> <mo>+</mo> <munder> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>&Element;</mo> <mi>S</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> </mrow> </munder> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>W</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> <mo>)</mo> <msub> <mi>I</mi> <mi>p</mi> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> <mo>)</mo> <mo>,</mo> </mrow>

其中,TW1表示非深度边缘区域内用于归一化的总权值,∑(·)表示求和操作;W(i)表示在像素i处的修正暗原色值的权值,i∈S(x),S(x)表示以像素x为中心的一个正方形窗口,窗口大小为2p×2p,p=15,i表示窗口S(x)中的像素;I1(i)和Ip(i)分别表示在像素i处的像素级和块级暗原色值;

(5c)计算有雾图像深度边缘区域的平滑暗原色值

<mrow> <msubsup> <mi>I</mi> <mrow> <mi>s</mi> <mi>m</mi> </mrow> <mi>D</mi> </msubsup> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mi>T</mi> <mi>W</mi> <mn>2</mn> </mrow> </mfrac> <mo>(</mo> <munder> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>&Element;</mo> <mi>T</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> </mrow> </munder> <mi>W</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> <msub> <mi>I</mi> <mn>1</mn> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> <mo>+</mo> <munder> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>&Element;</mo> <mi>T</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> </mrow> </munder> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>W</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> <mo>)</mo> <msub> <mi>I</mi> <mi>p</mi> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> <mo>)</mo> <mo>,</mo> </mrow>

其中,TW2表示深度边缘区域内用于归一化的总权值,T(x)表示S(x)中I1(i)与I1(x)接近的像素的集合,定义如下:

T(x)={i|I1(i)-I1(x)<Th,i∈S(x)},

其中,Th表示T(x)的阈值,取值范围是0.02-0.25;

(5d)将有雾图像非深度边缘区域的平滑暗原色值和深度边缘区域的平滑暗原色值进行合并,形成整图的平滑暗原色值:

(5e)根据平滑暗原色值计算有雾图像的优化透射率tsm(x):

<mrow> <msub> <mi>t</mi> <mrow> <mi>s</mi> <mi>m</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>=</mo> <mn>1</mn> <mo>-</mo> <mi>&omega;</mi> <mfrac> <mrow> <msub> <mi>I</mi> <mrow> <mi>s</mi> <mi>m</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> </mrow> <mrow> <mi>m</mi> <mi>e</mi> <mi>a</mi> <mi>n</mi> <mrow> <mo>(</mo> <mi>A</mi> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>,</mo> </mrow>

其中,ω取值范围是0.7-0.95;mean(·)表示取均值操作,A表示有雾图像的大气光值;

(6)根据优化透射率,计算恢复图像的强度值J(x):

<mrow> <mi>J</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <mi>I</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>-</mo> <mi>A</mi> </mrow> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> <mrow> <mo>(</mo> <msub> <mi>t</mi> <mrow> <mi>s</mi> <mi>m</mi> </mrow> </msub> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>,</mo> <msub> <mi>t</mi> <mn>0</mn> </msub> <mo>)</mo> </mrow> </mfrac> <mo>+</mo> <mi>A</mi> <mo>,</mo> </mrow>

其中,I(x)表示有雾图像的强度值;t0表示有雾图像优化透射率的下限,其取值范围是0.3-0.45。

2.根据权利要求1所述的方法,其中步骤(2a)中利用暗原色先验算法计算有雾图像的初始粗糙透射率tori,按如下步骤进行:

(2a1)计算有雾图像的初始暗原色值

<mrow> <msubsup> <mi>I</mi> <mrow> <mi>o</mi> <mi>r</mi> <mi>i</mi> </mrow> <mrow> <mi>d</mi> <mi>a</mi> <mi>r</mi> <mi>k</mi> </mrow> </msubsup> <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> <msup> <mi>I</mi> <mi>c</mi> </msup> <mo>(</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>)</mo> <mo>)</mo> <mo>,</mo> </mrow>

其中,Ω(x)表示以像素x为中心的一个正方形窗口,窗口大小为9×9;y表示窗口Ω(x)中的像素;c表示有雾图像3个颜色通道{R,G,B}中的一个通道;Ic(y)表示有雾图像在像素y处的第c层颜色通道的强度值;

(2a2)计算有雾图像的初始大气光值Aori

对有雾图像中所有像素的初始暗原色值从大到小排序,记录排序后的前K个像素的坐标位置,K=0.001*M*N,在有雾图像的对应位置处选取R、G、B这3个通道之和最大的像素点的强度值作为初始大气光值;

(2a3)利用下式计算有雾图像的初始粗糙透射率tori

<mrow> <msub> <mi>t</mi> <mrow> <mi>o</mi> <mi>r</mi> <mi>i</mi> </mrow> </msub> <mo>=</mo> <mn>1</mn> <mo>-</mo> <mi>&omega;</mi> <munder> <mrow> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> <mi>c</mi> </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> <mfrac> <mrow> <msup> <mi>I</mi> <mi>c</mi> </msup> <mrow> <mo>(</mo> <mi>y</mi> <mo>)</mo> </mrow> </mrow> <msubsup> <mi>A</mi> <mrow> <mi>o</mi> <mi>r</mi> <mi>i</mi> </mrow> <mi>c</mi> </msubsup> </mfrac> <mo>)</mo> </mrow> <mo>,</mo> </mrow>

其中,ω=0.95;表示第c层颜色通道的初始大气光值。

3.根据权利要求1所述的方法,其中步骤(4a)中有雾图像的像素级暗原色值I1(x)和块级暗原色值Ip(x),按如下公式计算:

<mrow> <msub> <mi>I</mi> <mn>1</mn> </msub> <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> <msup> <mi>I</mi> <mi>c</mi> </msup> <mo>(</mo> <mi>x</mi> <mo>)</mo> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>I</mi> <mi>p</mi> </msub> <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> <msup> <mi>I</mi> <mi>c</mi> </msup> <mo>(</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>)</mo> <mo>)</mo> <mo>,</mo> </mrow>

其中,Ω(x)表示以像素x为中心的一个正方形窗口,窗口大小为p×p,p=15;y表示窗口Ω(x)中的像素;c表示有雾图像3个颜色通道{R,G,B}中的一个通道;Ic(x)表示有雾图像在像素x处的第c层颜色通道的强度值;Ic(y)表示有雾图像在像素y处的第c层颜色通道的强度值。

4.根据权利要求1所述的方法,其中步骤(5a)中利用暗原色先验算法计算有雾图像的大气光值A,按如下步骤进行:

(5a1)计算有雾图像的暗原色值Idark(x):

<mrow> <msup> <mi>I</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> <msup> <mi>I</mi> <mi>c</mi> </msup> <mo>(</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>)</mo> <mo>)</mo> <mo>,</mo> </mrow>

其中,Ω(x)表示以像素x为中心的一个正方形窗口,窗口大小为15×15;y表示窗口Ω(x)中的像素;c表示有雾图像3个颜色通道{R,G,B}中的一个通道;Ic(y)表示有雾图像在像素y处的第c层颜色通道的强度值;

(5a2)计算有雾图像的大气光值A:

对有雾图像中所有像素的暗原色值Idark(x)从大到小排序,记录排序后的前K个像素的坐标位置,K=0.001*M*N,在有雾图像的对应位置处选取R、G、B这3个通道之和最大的像素点的强度值作为大气光值。

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