三维精密测量(二) 曲率滤波

曲率滤波

本文重点

   图像边界往往存在噪声,在获取亚像素级边缘点后,必须对边缘点进行滤波。本文提出一种基于圆曲率的边缘点滤波方法,这种方法很简单,但是却有很好的滤波效果。

1. 曲率简单介绍

        曲率是曲线的一个重要特征,它在一定程度上反映了曲线的弯曲程度,对于二维曲线,曲率定义为

${\rm{k}} = \frac{{\frac{{{d^2}y}}{{d{x^2}}}}}{{{{\left[ {1 + {{\left( {\frac{{dy}}{{dx}}} \right)}^2}} \right]}^{\frac{3}{2}}}}} = \frac{{f''}}{{{{\left[ {1 + {{\left( {f'} \right)}^2}} \right]}^{\frac{3}{2}}}}}$   式(1.1)

        对于同一平面内的任意三个连续点(x1,y1),(x2,y2),(x3,y3),如图1所示,(x2,y2)的曲率定义为

${\rm{k}} = \frac{1}{r} = \frac{1}{{\sqrt {{{\left( {x0 - x2} \right)}^2} + {{\left( {y0 - y2} \right)}^2}} }}$   式(1.2)

        式中(x0,y0)为这三点组成圆的圆心,且有

${\rm{x}}0 = \frac{{a - b + c}}{d}$

${\rm{y}}0 = \frac{{e - f + g}}{{ - d}}$

a=(x1+x2)(x2-x1)(y3-y2)

b=(x2+x3)(x3-x2)(y2-y1)

扫描二维码关注公众号,回复: 3372979 查看本文章

c=(y1-y3)(y2-y1)(y3-y2)

d=2[(x2-x1)(y3-y2)-(x3-x2)(y2-y1)]

e=(y1+y2)(y2-y1)(x3-x2)

f=(y2+y3)(y3-y2)(x2-x1)

g=(x1-x3)(x2-x1)(x3-x2)

圆上某点曲率

图一

        推导方法由三个点共面,三个点到圆心距离相等求得。

        即

$\left| {\begin{array}{*{20}{c}}{\begin{array}{*{20}{c}}x&y&z&1\\{x1}&{y1}&{z1}&1\\{x2}&{y2}&{z2}&1\end{array}}\\{\begin{array}{*{20}{c}}{x3}&{y3}&{z3}&1\end{array}}\end{array}} \right| = 0$   (1)
R2 = (x1-x0)2+(y1-y0)2+(z1-z0)2   (2)

R2 = (x2-x0)2+(y2-y0)2+(z2-z0)2   (3)

R2 = (x3-x0)2+(y3-y0)2+(z3-z0)2   (4)

 

2. 滤波原理及算法

        在标准圆中,其边缘点的曲率相同,都等于标准半径的倒数。而在实际中,由于边缘点不是在理想的圆周点,边缘点的曲率会在某个值附近波动,这个值可以根据半径粗定位获得,称之为圆的粗定位曲率。如果边缘点存在噪声,该点的曲率在粗定位曲率附近有较大的波动,即该点曲率与粗定位曲率之差大于某个阈值(阈值通过实际情况判断)。通过式1.1知,一个噪声点会影响其临近的两个点的曲率值,因此只有当一个点的前后两个点的粗定位曲率都大于阈值,该点本身曲率也大于阈值,则该点才是噪声点,这样计算出的亚像素边缘经过曲率过滤会更接近标准圆。

        具体算法:

        Step1:根据式(1.2)求得各个亚像素级边缘点的曲率。

        Step2:令粗定位曲率为c(其值为粗定位圆半径的倒数),阈值为t,当前点为P(x0,y0),当前点,前一点,后一点曲率分别为Q0, Q-1,Q1。如果满足以下三个条件时,则认为点P(x0,y0)为噪声点,予以剔除。

        条件1:|Q0-c|>t;

        条件2:|Q-1-c|>t;

        条件3:|Q1-c|>t.

【 结束 】

猜你喜欢

转载自www.cnblogs.com/fujj/p/9711062.html