给出一个凸polgyon和一个数字N,我如何找到最小的多边形
例如,假设我有一组点并计算它们的凸包(绿色)。现在我想找到包含所有点(红色)的最小四边形
很容易看到任何其他具有4个角的多边形要么更大,要么不能包含所有点。但是如何在一般情况下找到这个多边形呢?
编辑:
最小的多边形是指覆盖最小区域的多边形,但我不确定最小的圆周是否会产生不同的结果。
我添加了另外两张示例图片,遗憾的是这些图片似乎与其中一个答案中的“删除边缘”方法无关
一些背景资料:
目标是通过图像识别准确地确定形状。例如拍摄一个长方体的照片。 2D照片中框内的所有点都将包含在6角凸多边形中。然而,由于真实世界的形状没有完美的角落,并且相机增加了一些模糊,因此该多边形的边缘将是圆形的。 请参阅问题Getting corners from convex points
中的附图
答案 0 :(得分:17)
您需要在问题中定义“最小”的概念。无论你的定义是什么, 这个问题已在计算几何文献中进行了大量研究。 关键搜索短语是最小的封闭k-gon :
一般算法并不简单 (尽管最小区域三角形或矩形的算法很简单)。 根据你的目标,你可能不得不放弃任何数学概念 “最小的”并开始启发式。
答案 1 :(得分:0)
While number of edges > N do
remove the shortest edge by replacing its endpoints
with the intersection point of the adjacent edges