OpenCV 的 cv2.boundingRect() 函数是如何工作的?

Posted

技术标签:

【中文标题】OpenCV 的 cv2.boundingRect() 函数是如何工作的?【英文标题】:How does cv2.boundingRect() function of OpenCV work? 【发布时间】:2017-07-16 04:03:13 【问题描述】:

我需要关于 OpenCV 的 boundingRect 的解释。我已经实现了,效果很好。请问有没有完整解释此功能的参考资料?

【问题讨论】:

你见过THIS DOC @JeruLuke :是的,我确实经历过几次。但我需要更多关于它如何在后台工作的信息。 【参考方案1】:

OpenCV 的cv2.boundingRect() 函数用于在二值图像周围绘制一个近似矩形。该功能主要用于从图像中获取轮廓后突出显示感兴趣区域。

根据the documentation,有两种类型的边界矩形:

    直边框

这里围绕轮廓 (ROI) 绘制了一个简单的矩形。正如您在文档中看到的那样,在 ROI 周围绘制了一个绿色矩形。得到相应的矩形坐标,使矩形完全包围轮廓。

    旋转矩形
在这种情况下,cv2.minAreaRect() 函数用于突出显示 包围轮廓的最小矩形区域。 cv2.boxPoints()获取得到的4个角点 矩形。 np.int0() 完成将坐标从 float 转换为 integer 格式。 这些点随后用于绘制矩形。这由 文档中的红色矩形。

【讨论】:

"draw" 和 "highlight" 会不准确,因为这些函数只返回对象,但不会在图像中绘制(不过,您可以使用它们与其他函数一起执行此操作)。 我发现this 的答案很有用。你可以参考一下。它演示了 Jeru 在这里描述的内容。

以上是关于OpenCV 的 cv2.boundingRect() 函数是如何工作的?的主要内容,如果未能解决你的问题,请参考以下文章

opencv 7 -- 边界矩形

python-opencv boundingRect使用注意

cv2.boundingRect 返回错误的坐标

opencv 9 -- 轮廓 性质

opencv 9 -- 轮廓 性质

SyntaxError:无法分配给函数调用(Python)[关闭]