如何从简单的线条图像生成坐标对列表

问题描述 投票:0回答:1

这里的任务是为机器人生成一个 2D 路径,该路径复制(手)画的线。线是一种简单的形状,是曲线或波形曲线,并且始终有一个起点和一个终点。此处显示了波形曲线的示例。

我使用 OpenCV 的 cv2.findContours 来查找线的两侧,从而生成描述两侧的坐标列表。我需要的是一条(实际上)沿着线的中心运行的单一坐标路径,这是机器人将遵循的路径。

scikit-image 的 skimage.measure.find_contours 生成了类似的结果。

我尝试使用具有一个边缘的图像,例如:

使得算法只找到一条边。生成的坐标路径更接近我需要的结果,但会产生一个封闭的多边形和如下所示的坐标路径:

包含图像的边界(直)边缘,这是不希望的。

所以我想我有两个选择。一种是沿着曲线找到两条边之间的中点(而不是找到两条边)的算法。选项二是通过简单地过滤掉该区域中的那些坐标来忽略图像的边界边缘,但这看起来很笨拙。

感谢您收到的任何帮助。

python opencv image-processing scikit-image curve
1个回答
0
投票

感谢大家的协助。

我对这个特定问题有一个解决方案,即使用 cv2.findContours,如上所述,它可以找到一条线的两侧,然后仅使用前 50% 的点来生成机器人路径。方便地,这是因为算法必须沿着线的一侧跟踪,然后沿着另一侧返回。我只需要一侧,在此应用程序中准确性并不那么重要。

© www.soinside.com 2019 - 2024. All rights reserved.