20

的给定数量的含有最小的凸多边形,我怎么发现找到给出凸polgyon等一批N个点

  1. 包含原始多边形
  2. 具有完全相同的每一个点的最小多边形N个角点

例如,假设我有一组点并为它们计算凸包(绿色)。现在我想找到一个包含所有点(红色)最小的四边形

smallest quadrangle enter image description here

很容易地看到,在4个角落的任何其他多边形要么是更大或不能包含所有的点。但是如何在一般情况下找到这个多边形?


编辑:

用最小的多边形我指的是覆盖面积最小的,虽然我不知道最小圆周是否会得出不同的结果之一。

我增加了两个例子的图片,遗憾的是似乎并不在其中一个答案用的“删除边”的工作方式


一些背景资料:

的目标是准确地确定形状与图像识别。例如,拍摄长方体的照片。 2D照片中框内的所有点将包含在6角凸多边形中。然而,由于现实世界的形状没有完美的角落,并且相机增加了一些模糊效果,因此该多边形的边缘将会变圆。 从问题Getting corners from convex points

blurred corners

+0

最小面积和最小周长通常是不同的,一般来说后者的计算要复杂得多。所以,如果你有自由,尽量减少面积,并看看我引用的参考文献。 – 2012-07-22 20:12:28

回答

17

你需要在你的问题来定义的“最小”的概念见所附的图像。无论您的定义如何, 这个问题已经在计算几何文献中进行了深入的研究。 关键搜索短语是最小包围的k边形

  • Mictchell等人:“最低周长围的k边形” 2006(CiteSeer link
  • Aggarwal等人:“最小区域限定多边形” 1985(CiteSeer link
  • O'Rourke的等人: “用于fnding最小封闭三角形” 1986的最优算法,AlgorithmicaACM link

一般算法并不简单 (尽管最小面积三角形或矩形的算法很简单)。 根据你的目标,你可能不得不放弃任何数学概念 “最小”,并寻求启发式。

0
While number of edges > N do 
    remove the shortest edge by replacing its endpoints 
    with the intersection point of the adjacent edges 
+0

优雅而简单!我认为我的问题只是在去除点而不是边缘方面考虑问题。然而,为了找到确定的最小多边形,我认为有必要总是去除导致面积增加最小的边缘,这可能不是最短边缘 – HugoRune 2012-07-22 17:42:52

+0

-1。显然是错的。考虑一些例子,其中很长的几乎是直线的一面是由很多小段构成的。 – 2012-07-22 17:54:15

+0

我同意,你的例子肯定会降低我提出的算法。 – 2012-07-22 18:44:24