【问题标题】:Divide Contours at overlap在重叠处分割轮廓
【发布时间】:2012-11-06 17:37:30
【问题描述】:

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

在此示例中,我只想切割右下角的杆。
由于性能问题,不能选择霍夫圆检测。

谢谢!

【问题讨论】:

    标签: c++ image-processing opencv


    【解决方案1】:

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

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

    【讨论】:

    • 好的,这似乎是一个开始,谢谢!但即使我有“桥”或切线将轮廓中不需要的部分切掉,我如何将它整合到轮廓中?
    • @moatilliatta 只需使用切线段的那些点作为桥梁。
    猜你喜欢
    • 2017-08-15
    • 2017-05-15
    • 2020-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-19
    • 1970-01-01
    • 2017-06-11
    相关资源
    最近更新 更多