找到2个平行轮廓的中点

时间:2014-03-31 10:01:57

标签: c++ opencv vector

无法通过搜索找到这个,但我不知道如何描述这个,这是问题很难找到正确方法的一个原因。对不起,如果已经被问到或者问题描述是否含糊不清。

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

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

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

1 个答案:

答案 0 :(得分:1)

听起来你正在寻找"骨架" - 如果你知道条款,它会有所帮助。

如果您可以将图像转换为仍然显示路径的黑白图像,那么它很简单:迭代侵蚀程序,直到不再有点被侵蚀。

另一种方法是认识到操作一次是昂贵的,但是一旦你找到了一对点,下一对很容易在相应的3x3邻域中找到。