我正在寻找一种算法来查找可以表示 2D 空间中的一组点的多边形。具体来说,如果给定一组像这样的点
理想情况下它应该产生类似这样的东西:
(箭头为线段)
基本上,输出将是一组“最好”解决点特征的段。该算法可能需要一些参数来控制输出段的数量。
我目前对我正在寻找什么算法没有任何想法。任何论文或建议表示赞赏。
这是一种可能的算法。
对于每个点,查看最接近它的 2 个点,它们会连接起来。 然后使用 Douglas Peucker 细化边缘。
本质上,您将创建一个包含所有点的第一个多边形,并尝试消除那些消除后不会太大改变形状的点。
完成 @Makogan 响应,Douglas-Peucker 算法的实现可以在
approximate_polygon
函数中找到 scikit-image
from skimage.measure import approximate_polygon
approximate_polygon(<your_coordinates_numpy_array>)
>>> array([[x,y],...])