任意多边形中最大的内接矩形

时间:2015-02-25 11:00:21

标签: c++ algorithm opencv math

我曾与OpenCV Stitching合作过一段时间。现在我想做拼接的最后一步:裁剪图像。这导致在一般多边形中找到最大的内接轴平行矩形。

我已经使用Google搜索并找到了一些答案(How do I crop to largest interior bounding box in OpenCV?)。尽管程序运行缓慢,但输出图像的质量仍然很好(裁剪图像需要15秒才能将36个1600x1200图像拼接成1个全景图,因为使用的算法时间复杂度很低(对于轮廓中的每个点,它扫描同一行/列中的所有点)。

有什么方法可以改善这个?感谢。

P / S:我也找到了这本书:

  

在多边形中找到最大面积轴平行矩形

     

Karen Daniels和Victor Milenkovicz Dan Rothx哈佛大学,

     

应用科学系,

     

计算技术研究中心,

     

Cambridge,MA 02138。

     

1995年6月

但我没有任何想法将这个理论应用到代码中:v

1 个答案:

答案 0 :(得分:5)

您可能不想实现该算法;这需要相当长的时间,而且我怀疑你会因为大O界限而对表现感到失望。

听起来好像你正在使用栅格,所以你可以在二进制矩阵中使用linear-time algorithm for finding the largest rectangle of zeros