给定一组点(2D),即点云(PC),问题是关于robustaccuratecomputing-friendly方法来查找圆(或高级版本中的椭圆)。

直观的想法是对所有可能的点(作为中心){无限!}和半径(再次无限!)使用蛮力搜索。这极其缓慢且效率低下。

如下所示,每个拟合的圆都将基于圆周长上的点数(nn)短于阈值(t)进行排名。因此,存在derr来表示平均距离。

需要设置椭圆的高级形式。

任何想法,头脑风暴,经验,评论吗?


评论

好问题。您使用什么程序生成该图?

@JasonR与往常一样,Python + MatPlotLib。

#1 楼

精确尝试解决此问题的最佳方法是霍夫变换。

基本上,霍夫空间中的信号将是r, x, y坐标。其中r
代表半径,而x,y代表中心。每个点可能属于一个或多个圈子。因此,在霍夫平面中,遍历该点可能所属的所有可能的圆,并对其进行+1。这不是搜索,只是集合。

现在,如果存在一个实心圆,那么它将添加很多点,并且此类r, x, y的得分将远高于其他所有得分。选择这样的点将允许您选择正确的圆圈。

这是1971年(我出生之前!)的一种经典纸质方式,发明了这个概念。



使用粗糙的变形检测图像中的线条和曲线
作者:Richard O. Duda,Peter E. Hart
技术报告人工情报中心1971年4月。

对于教程,我建议参考以下内容:



HIPR2 -Link
Amos storkey

IDL参考

专门用于圆形检测,您可以在下面参考:



AI Shack

芝加哥大学技术报告。
罗彻斯特研究所的讲义

这些方法非常有效,而且非常计算机友好。

评论


$ \ begingroup $
我可以担保AI Shack的文章,它们确实有助于理解您将在其他地方阅读的更严格的数学。
$ \ endgroup $
– Ivo Flipse
2012年2月16日在7:37

$ \ begingroup $
好答案。我已经熟悉霍夫变换(HT)。我用的是一种检测线的方法。确定线段有些困难。建议使用概率霍夫变换(PHT)。对于扩展程序,我不清楚。我认为圈子可能太复杂或出现其他困难。就我的经验而言,HT是好的,但不是完美的。我还关心如何将HT扩展到3D。我将尝试查看您提供的链接。您的答案相当不错,可以作为答案。
$ \ endgroup $
–开发人员
2012年2月16日上午10:30

$ \ begingroup $
AI棚屋和Chicaco的技术报告链接已死
$ \ endgroup $
– Mehdi
16-4-5 8:00