0

我有一个图像,我用第一个)cvCanny 和第二个)findContours 提取了几个轮廓。我只对外部点感兴趣,所以我得到了几个我做进一步分析的闭合轮廓。我正在寻找椭圆或圆形,由于图像中有一些重叠,我得到了一些对我来说实际上很有趣的轮廓,但我的算法丢弃了它们,因为它们看起来不是椭圆的。
有没有办法划分这些轮廓,例如基于检测为一个的两个重叠轮廓之间的小连接“桥梁”?

示例轮廓

在这个例子中,我只想切割右下角的杆。
由于性能问题,霍夫圆检测不是一种选择。

谢谢!

4

1 回答 1

1

以前从未使用过这类算法,但这里有一个想法:定义点之间的最小长度 L,小于您想要创建桥梁的长度。然后对于轮廓上的每个点,构造长度为 L 的切线段,其原点位于该点。无论该切线段与两点相交何处,您都会有一个轮廓被有效地“挤压”的地方,就像您图中的杆/椭圆连接处一样。发生这种情况时,请绘制桥,这将是切线段本身。

如果您在单个点(例如在曲线的顶部,朝向左侧)取一个段,然后围绕轮廓移动该段,沿着在线创建的桥移动它,则可能更容易想象或做满足以上条件。

于 2012-11-06T09:37:30.487 回答