发明名称 面向图像边缘检测的平滑滤波空间尺度的自适应确定方法
摘要 本发明公开了一种面向图像边缘检测的平滑滤波空间尺度的自适应确定方法。本发明可以为图像中每个像素点自适应确定最佳的平滑滤波空间尺度,也就是落在大面积平滑均匀区域中像素点的平滑滤波空间尺度相对比较大,而处于图像边缘邻近像素点的平滑滤波空间尺度相对比较小。该自适应确定图像中各个像素点的平滑滤波空间尺度可以结合到灰度或彩色图像的边缘检测或平滑滤波中,能有效地消除图像中独立分布高斯白噪声或空间相关纹理噪声的干扰,同时保持图像中的边缘不会被过模糊,可以应用于纺织印染行业中。
申请公布号 CN101908208B 申请公布日期 2011.11.09
申请号 CN201010237914.1 申请日期 2010.07.27
申请人 浙江大学 发明人 陆系群
分类号 G06T5/00(2006.01)I;G06T7/00(2006.01)I 主分类号 G06T5/00(2006.01)I
代理机构 杭州求是专利事务所有限公司 33200 代理人 林怀禹
主权项 1.一种面向图像边缘检测的平滑滤波空间尺度的自适应确定方法,其特征在于该方法的步骤如下:(1)设定供图像中每个像素点选择平滑滤波空间尺度的一个离散数值集合,这个离散集合中的数值是从大到小排列;(2)图像平滑滤波器是一个滑动窗口,按照光栅点阵扫描方式逐点扫描整幅输入图像,输入图像是灰度图像或彩色图像,而所述的平滑滤波空间尺度就是这个滑动窗口的半径r;(3)当滑动窗口扫描到一个像素点时,即滑动窗口的中心停留在该像素点时,从上述平滑滤波空间尺度供选择的离散数值集合中按照次序取一个数值作为滑动窗口的半径r;(4)计算落在这个滑动窗口内所有像素点灰度或色彩的平均值,以及灰度或色彩的方差:<maths num="0001"><![CDATA[<math><mrow><mover><mi>c</mi><mo>&OverBar;</mo></mover><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><msup><mrow><mo>(</mo><mn>2</mn><mi>r</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mn>2</mn></msup></mfrac><munderover><mi>&Sigma;</mi><mrow><msup><mi>x</mi><mo>&prime;</mo></msup><mo>=</mo><mi>x</mi><mo>-</mo><mi>r</mi></mrow><mrow><mi>x</mi><mo>+</mo><mi>r</mi></mrow></munderover><munderover><mi>&Sigma;</mi><mrow><msup><mi>y</mi><mo>&prime;</mo></msup><mo>=</mo><mi>y</mi><mo>-</mo><mi>r</mi></mrow><mrow><mi>y</mi><mo>+</mo><mi>r</mi></mrow></munderover><mi>c</mi><mrow><mo>(</mo><msup><mi>x</mi><mo>&prime;</mo></msup><mo>,</mo><msup><mi>y</mi><mo>&prime;</mo></msup><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow></math>]]></maths><maths num="0002"><![CDATA[<math><mrow><msup><mi>&sigma;</mi><mn>2</mn></msup><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><msup><mrow><mo>(</mo><mn>2</mn><mi>r</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mn>2</mn></msup></mfrac><munderover><mi>&Sigma;</mi><mrow><msup><mi>x</mi><mo>&prime;</mo></msup><mo>=</mo><mi>x</mi><mo>-</mo><mi>r</mi></mrow><mrow><mi>x</mi><mo>+</mo><mi>r</mi></mrow></munderover><munderover><mi>&Sigma;</mi><mrow><msup><mi>y</mi><mo>&prime;</mo></msup><mo>=</mo><mi>y</mi><mo>-</mo><mi>r</mi></mrow><mrow><mi>y</mi><mo>+</mo><mi>r</mi></mrow></munderover><msup><mrow><mo>(</mo><mi>c</mi><mrow><mo>(</mo><msup><mi>x</mi><mo>&prime;</mo></msup><mo>,</mo><msup><mi>y</mi><mo>&prime;</mo></msup><mo>)</mo></mrow><mo>-</mo><mover><mi>c</mi><mo>&OverBar;</mo></mover><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>)</mo></mrow><mn>2</mn></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow></math>]]></maths>其中(x,y)表示滑动窗口内中心像素点的空间坐标,r表示所述滑动窗口的半径,r以数字图像中像素点间距为单位,(x′,y′)表示落在以像素点(x,y)为中心,半径为r的滑动窗口内像素点的空间坐标,c(x′,y′)表示位于像素点(x′,y′)的灰度或色彩,<img file="FSB00000580858800013.GIF" wi="134" he="49" />表示以像素点(x,y)为中心,半径为r的滑动窗口内所有像素点灰度或色彩的平均值,σ<sup>2</sup>(x,y)表示所述滑动窗口内所有像素点灰度或色彩的方差;(5)分别计算落在所述滑动窗口左半部,右半部,上半部和下半部像素点灰度或色彩的平均值:<maths num="0003"><![CDATA[<math><mrow><msub><mover><mi>c</mi><mo>&OverBar;</mo></mover><mi>L</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><mrow><mrow><mo>(</mo><mn>2</mn><mi>r</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mi>r</mi></mrow></mfrac><munderover><mi>&Sigma;</mi><mrow><msup><mi>x</mi><mo>&prime;</mo></msup><mo>=</mo><mi>x</mi><mo>-</mo><mi>r</mi></mrow><mrow><mi>x</mi><mo>-</mo><mn>1</mn></mrow></munderover><munderover><mi>&Sigma;</mi><mrow><msup><mi>y</mi><mo>&prime;</mo></msup><mo>=</mo><mi>y</mi><mo>-</mo><mi>r</mi></mrow><mrow><mi>y</mi><mo>+</mo><mi>r</mi></mrow></munderover><mi>c</mi><mrow><mo>(</mo><msup><mi>x</mi><mo>&prime;</mo></msup><mo>,</mo><msup><mi>y</mi><mo>&prime;</mo></msup><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow></math>]]></maths><maths num="0004"><![CDATA[<math><mrow><msub><mover><mi>c</mi><mo>&OverBar;</mo></mover><mi>R</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><mrow><mrow><mo>(</mo><mn>2</mn><mi>r</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mi>r</mi></mrow></mfrac><munderover><mi>&Sigma;</mi><mrow><msup><mi>x</mi><mo>&prime;</mo></msup><mo>=</mo><mi>x</mi><mo>+</mo><mn>1</mn></mrow><mrow><mi>x</mi><mo>+</mo><mi>r</mi></mrow></munderover><munderover><mi>&Sigma;</mi><mrow><msup><mi>y</mi><mo>&prime;</mo></msup><mo>=</mo><mi>y</mi><mo>-</mo><mi>r</mi></mrow><mrow><mi>y</mi><mo>+</mo><mi>r</mi></mrow></munderover><mi>c</mi><mrow><mo>(</mo><msup><mi>x</mi><mo>&prime;</mo></msup><mo>,</mo><msup><mi>y</mi><mo>&prime;</mo></msup><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow></math>]]></maths><maths num="0005"><![CDATA[<math><mrow><msub><mover><mi>c</mi><mo>&OverBar;</mo></mover><mi>U</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><mrow><mrow><mo>(</mo><mn>2</mn><mi>r</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mi>r</mi></mrow></mfrac><munderover><mi>&Sigma;</mi><mrow><msup><mi>x</mi><mo>&prime;</mo></msup><mo>=</mo><mi>x</mi><mo>-</mo><mi>r</mi></mrow><mrow><mi>x</mi><mo>+</mo><mi>r</mi></mrow></munderover><munderover><mi>&Sigma;</mi><mrow><msup><mi>y</mi><mo>&prime;</mo></msup><mo>=</mo><mi>y</mi><mo>-</mo><mi>r</mi></mrow><mrow><mi>y</mi><mo>-</mo><mn>1</mn></mrow></munderover><mi>c</mi><mrow><mo>(</mo><msup><mi>x</mi><mo>&prime;</mo></msup><mo>,</mo><msup><mi>y</mi><mo>&prime;</mo></msup><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow></math>]]></maths><maths num="0006"><![CDATA[<math><mrow><msub><mover><mi>c</mi><mo>&OverBar;</mo></mover><mi>D</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><mrow><mrow><mo>(</mo><mn>2</mn><mi>r</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mi>r</mi></mrow></mfrac><munderover><mi>&Sigma;</mi><mrow><msup><mi>x</mi><mo>&prime;</mo></msup><mo>=</mo><mi>x</mi><mo>-</mo><mi>r</mi></mrow><mrow><mi>x</mi><mo>+</mo><mi>r</mi></mrow></munderover><munderover><mi>&Sigma;</mi><mrow><msup><mi>y</mi><mo>&prime;</mo></msup><mo>=</mo><mi>y</mi><mo>+</mo><mn>1</mn></mrow><mrow><mi>y</mi><mo>+</mo><mi>r</mi></mrow></munderover><mi>c</mi><mrow><mo>(</mo><msup><mi>x</mi><mo>&prime;</mo></msup><mo>,</mo><msup><mi>y</mi><mo>&prime;</mo></msup><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow></math>]]></maths>这里<img file="FSB00000580858800022.GIF" wi="608" he="56" />和<img file="FSB00000580858800023.GIF" wi="156" he="51" />分别表示落在所述滑动窗口左半部,右半部,上半部和下半部像素点灰度或色彩的平均值,如果输入图像是灰度图像,则<img file="FSB00000580858800024.GIF" wi="607" he="57" />和<img file="FSB00000580858800025.GIF" wi="155" he="50" />都是标量;如果输入图像是彩色图像,则<img file="FSB00000580858800026.GIF" wi="606" he="76" />和<img file="FSB00000580858800027.GIF" wi="156" he="51" />是矢量,每个矢量都有三个分量,即红色,绿色和蓝色分量;(6)按统计学上t分布上α分位点的定义,检查所述滑动窗口左半部,右半部,上半部和下半部像素点灰度或色彩的平均值,即<img file="FSB00000580858800028.GIF" wi="597" he="57" />和<img file="FSB00000580858800029.GIF" wi="155" he="50" />是否落在整个滑动窗口灰度或色彩的平均值在置信水平为1-α下的置信区间内:<maths num="0007"><![CDATA[<math><mrow><mi>P</mi><mo>{</mo><mo>|</mo><mfrac><mrow><msubsup><mover><mi>c</mi><mo>&OverBar;</mo></mover><mi>j</mi><mi>i</mi></msubsup><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>-</mo><msup><mover><mi>c</mi><mo>&OverBar;</mo></mover><mi>i</mi></msup><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow></mrow><mrow><msup><mi>&sigma;</mi><mi>i</mi></msup><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>/</mo><msqrt><mi>n</mi></msqrt></mrow></mfrac><mo>|</mo><mo>&lt;</mo><msub><mi>z</mi><mrow><mi>&alpha;</mi><mo>/</mo><mn>2</mn></mrow></msub><mo>}</mo><mo>=</mo><mn>1</mn><mo>-</mo><mi>&alpha;</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow></math>]]></maths>如果输入图像是灰度图像,这里上标i=1,因为图像中每个像素点上只有一个灰度值,而当输入图像是彩色图像时,这里上标i表示色彩平均值或色彩方差中对应的红色,绿色或蓝色分量,而<img file="FSB000005808588000211.GIF" wi="147" he="63" />中下标j则表示是所述滑动窗口左半部,右半部,上半部或下半部,n表示落在所述滑动窗口左半部,右半部,上半部或下半部中像素点的个数,如果所述滑动窗口是正方形,n数值则刚好等于(2r+1)r,根据给定α数值,通过t分布表查询得到z<sub>α/2</sub>的数值;(7)如果所述滑动窗口左半部,右半部,上半部和下半部像素点灰度或色彩的平均值,即<img file="FSB000005808588000212.GIF" wi="582" he="56" />和<img file="FSB000005808588000213.GIF" wi="155" he="50" />中的每个分量,都满足公式(7),则判断所述滑动窗口中心所在的像素点(x,y)落在一个边长为(2r+1)的均匀区域,跳到步骤(9);(8)如果所述滑动窗口左半部,右半部,上半部和下半部像素点灰度或色彩的平均值,即<img file="FSB000005808588000214.GIF" wi="600" he="56" />和<img file="FSB000005808588000215.GIF" wi="156" he="51" />中的每个分量有一个不满足公式(7),说明当前滑动窗口所在的图像区域不是一个均匀区域,则按照从大到小次序从上述平滑滤波空间尺度可供选择的离散数值集合中选择下一个较小数值作为滑动窗口的半径r,然后回到步骤(4);(9)当前滑动窗口所取的半径r作为滑动窗口中心所在的像素点的平滑滤波空间尺度;(10)所述滑动窗口按照光栅点阵扫描顺序移到下一个像素点,重复步骤(3)到步骤(9),直至图像中所有像素都确定各自的平滑滤波空间尺度。
地址 310027 浙江省杭州市西湖区浙大路38号