三维精密测量 曲率滤波

Posted fujj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了三维精密测量 曲率滤波相关的知识,希望对你有一定的参考价值。

曲率滤波

本文重点

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

1. 曲率简单介绍

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

${ m{k}} = frac{{frac{{{d^2}y}}{{d{x^2}}}}}{{{{left[ {1 + {{left( {frac{{dy}}{{dx}}} ight)}^2}} ight]}^{frac{3}{2}}}}} = frac{{f‘‘}}{{{{left[ {1 + {{left( {f‘} ight)}^2}} ight]}^{frac{3}{2}}}}}$   式(1.1)

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

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

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

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

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

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

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

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| {egin{array}{*{20}{c}}{egin{array}{*{20}{c}}x&y&z&1\\{x1}&{y1}&{z1}&1\\{x2}&{y2}&{z2}&1end{array}}\\{egin{array}{*{20}{c}}{x3}&{y3}&{z3}&1end{array}}end{array}} ight| = 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.

 

 

【 结束 】

以上是关于三维精密测量 曲率滤波的主要内容,如果未能解决你的问题,请参考以下文章

点云数据处理学习笔记

三维标定与三维重建

三角化---深度滤波器

数据融合基于扩展卡尔曼滤波器实现三维数据融合matlab源码

基于曲率的体素聚类的三维激光雷达点云实时鲁棒分割方法

空间信息智能应用团队研究成果介绍及人才引进