【问题标题】:Finding the middle point of 2 parallel contours找到2个平行轮廓的中点
【发布时间】:2014-03-31 10:01:56
【问题描述】:

无法通过搜索找到此问题,但我不确定如何描述此问题,这也是问题难以找到正确方法的原因之一。对不起,如果它已经被问过,或者问题描述含糊不清。

问题:我正在使用 opencv 的 findcontours 从图像中检测出具有一致宽度的弯曲的绘制物理路径的轮廓。我需要沿着路径的长度在这两个边缘的中间映射一个点向量,以便用单个向量跟踪绘制的路径。

我想知道是否有一种方法可以在图像空间中的某个像素距离内,在各种其他轮廓中找到点。我可以遍历所有这些,并以这种方式找到最接近的,但那是时间密集型的。 如果有的话,我可以在其他轮廓向量中搜索大约正确宽度的点,并使用这 2 个点来估计一个中点并将其添加到不断增长的中间向量中。

或者,如果有更好的方法将检测到的路径转换为单个可行的向量。

【问题讨论】:

    标签: c++ opencv vector


    【解决方案1】:

    听起来您正在寻找“骨架” - 如果您知道这些术语会有所帮助。

    如果您可以将图像转换为仍然显示路径的黑白图像,这很简单:迭代侵蚀过程,直到没有更多的点被侵蚀。

    另一种方法是意识到该操作一次代价高昂,但是一旦您找到一对点,​​就很容易在各自的 3x3 邻域中找到下一对。

    【讨论】:

    猜你喜欢
    • 2021-07-31
    • 2014-12-12
    • 1970-01-01
    • 1970-01-01
    • 2018-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多