本文主要是介绍OPenCV结构分析与形状描述符(3)计算一个点集的最小外接矩形的函数boundingRect()的使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
- 操作系统: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;
}
运行结果
这篇关于OPenCV结构分析与形状描述符(3)计算一个点集的最小外接矩形的函数boundingRect()的使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!