【发布时间】:2016-08-29 03:45:26
【问题描述】:
多边形是通过检测不同区域边界的光栅化地图的轮廓生成的。注意原始图像中由字母创建的“入口”。我想确定一组点,如果端点连接起来,这些点会将多边形周长的长度减少至少某个值。我尝试为每个多边形生成凸包,并根据外壳顶点之间的多边形周长之间的距离和顶点之间的距离的差异来节省周长,但不能保证这些顶点靠近“入口”的边缘”。
我觉得这个问题在计算几何中有一个术语,但不知道它是什么。我是否必须计算每个可能的起点/终点组合所节省的距离,还是有一个简化的算法可以递归地执行此操作?
这里,凸包连接多边形的角,而我只想关闭多边形右侧的大入口,同时保留该边的曲率。
【问题讨论】:
-
采用凸包听起来是正确的方法。你已经看过scipy.github.io/devdocs/generated/scipy.spatial.ConvexHull.html了吗?
-
您可能正在寻找一个凹形船体,您可以在其中控制参数以处理船体与输入形状的紧密程度。有许多对通用原则和实现的参考,其中许多在 gis 领域中
-
这听起来像是Ramer-Douglas Peucker 的工作。 OpenCV 在approxPolyDP 中实现它。
标签: python numpy geometry polygon contour