opencv:检测最小矩形的时间复杂度

opencv: Time complexity to detect minimum rectangle

本文关键字:时间复杂度 检测 opencv      更新时间:2023-10-16

我开始学习opencv的最小矩形检测。我需要为此计算时间复杂性,但仍然对以下方法感到困惑:

  1. findContours()
  2. minAreaRect()

任何人都可以帮我

  1. 这些方法是如何工作的
  2. 这些方法的时间复杂度是多少

任何参考都是可观的

cv::findContours()使用算法(链接)从二进制图像中检索轮廓:

Suzuki,S.和Abe,K.,数字化的拓扑结构分析按边框跟随的二进制图像。CVGIP 30 1,第32-46页(1985)

该算法的基本概念包括通过考虑拓扑分析来跟踪边缘。因此,提取了内部边缘和外部边缘之间的关系。在实践中,该算法区分外部边界和内部边界,并对其进行分层分类,因此,如果一个轮廓围绕该轮廓,则该轮廓被视为另一个轮廓的"父"轮廓。

另一方面,cv::minAreaRect()找到包围一组点的有向最小边界框。它是一种边界体积。对于物体的凸包,找到最小的包围盒就足够了。对于凸多边形,已知最小面积包围矩形的线性时间算法。根据观察,最小面积封闭框的一侧必须与凸多边形的一侧共线(见[1])。用旋转卡尺的方法可以在线性时间内列举出这种盒子。