给定一组点(2D),即点云(PC),问题是关于寻找圆(或高级版本中的椭圆)的方法 robust
。accurate
computing-friendly
直观的想法是在所有可能的点(作为中心){无限!}和半径(再次无限!)上使用蛮力搜索。这是极其缓慢和低效的。
如下所示,每个拟合圆将根据位于nn
圆圆周上的点数 ( ) 比阈值 ( ) 短t
。所以有derr
一个平均距离。
在高级形式中,椭圆很适合拟合。
有什么想法、头脑风暴、经验、评论吗?
给定一组点(2D),即点云(PC),问题是关于寻找圆(或高级版本中的椭圆)的方法 robust
。accurate
computing-friendly
直观的想法是在所有可能的点(作为中心){无限!}和半径(再次无限!)上使用蛮力搜索。这是极其缓慢和低效的。
如下所示,每个拟合圆将根据位于nn
圆圆周上的点数 ( ) 比阈值 ( ) 短t
。所以有derr
一个平均距离。
在高级形式中,椭圆很适合拟合。
有什么想法、头脑风暴、经验、评论吗?
正是试图解决这个问题的最佳想法是霍夫变换。
基本上,霍夫空间中的信号将是r, x, y
坐标。这里r
代表半径,x,y
代表中心。每个点可能属于一个或多个圆圈。因此,在霍夫平面中,遍历该点可能属于的所有可能的圆圈,然后进行 +1。这不是搜索,只是收集。
现在,如果一个真正的圆圈存在,那么会增加很多分数,并且这样的分数r, x, y
会比其他所有的分数都高得多。选择这样一个点将允许您选择正确的圆圈。
这是 1971 年(在我出生之前!)发明这个概念的经典论文。
对于教程,我建议以下参考:
具体圆检测可以参考下面这个:
这些方法非常有效,并且对计算机非常友好。