- 操作系统:ubuntu22.04
- OpenCV版本:OpenCV4.9
- IDE:Visual Studio Code
- 编程语言:C++11
算法描述
计算一个点集的最小右上边界矩形或灰度图像中的非零像素。
该函数计算并返回指定点集或灰度图像中非零像素的最小右上边界矩形。
在OpenCV中,boundingRect函数用于找到一个点集的最小外接矩形。这个矩形是最小的能够完全包含给定点集的轴对齐矩形。该函数常用于图像处理和计算机视觉应用中,例如物体检测和识别中的边界框计算。
函数原型
Rect cv::boundingRect
(
InputArray array
)
参数
- 参数array 输入的灰度图像或二维点集,存储在 std::vector 或 Mat 中。
代码示例
#include <iostream>
#include <opencv2/opencv.hpp>
int main()
{
// 创建一些点
std::vector< cv::Point > points = { cv::Point( 10, 10 ), cv::Point( 20, 20 ), cv::Point( 30, 30 ), cv::Point( 40, 40 ) };
// 获取这些点的最小外接矩形
cv::Rect boundRect = cv::boundingRect( points );
// 打印出矩形的信息
std::cout << "Bounding Rectangle: (" << boundRect.x << ", " << boundRect.y << ", " << boundRect.width << ", " << boundRect.height << ")" << std::endl;
// 如果你想在图像上绘制这个矩形,你可以这样做
cv::Mat img( 100, 100, CV_8UC3, cv::Scalar( 255, 255, 255 ) ); // 创建一个空白图像
cv::rectangle( img, boundRect, cv::Scalar( 0, 0, 255 ), 2 ); // 绘制红色矩形
// 显示图像
cv::imshow( "Bounding Rectangle", img );
cv::waitKey( 0 );
return 0;
}