OpenCV创建Rect类实现多区域roi截图c++
时间: 2023-09-03 07:08:20 浏览: 185
在OpenCV中,可以使用Rect类来定义矩形区域,并使用该类来实现多区域ROI(Region of Interest)截图。以下是一个示例代码,演示了如何使用Rect类来截取多个矩形区域的图像:
```
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
Mat image = imread("test.jpg"); // 读入测试图像
if (image.empty())
{
cout << "无法读取图像文件!" << endl;
return -1;
}
// 定义多个矩形区域
Rect roi1(50, 50, 100, 100);
Rect roi2(200, 100, 150, 200);
Rect roi3(100, 300, 200, 150);
// 从图像中截取对应区域的图像
Mat roiImage1 = image(roi1);
Mat roiImage2 = image(roi2);
Mat roiImage3 = image(roi3);
// 显示截取的图像
imshow("ROI 1", roiImage1);
imshow("ROI 2", roiImage2);
imshow("ROI 3", roiImage3);
waitKey(0);
return 0;
}
```
在上述代码中,我们首先读入了一张图像,然后定义了三个矩形区域(roi1、roi2和roi3),每个矩形区域的位置和大小都不同。接着,我们使用Mat的ROI操作来从原始图像中截取对应区域的图像,并将其保存到Mat对象(roiImage1、roiImage2和roiImage3)中。最后,我们使用imshow函数来显示截取的图像。
需要注意的是,Rect类的构造函数需要传入四个参数,分别为矩形的左上角坐标(x、y)和矩形的宽度和高度(width、height)。在本例中,我们分别定义了三个矩形区域,并使用这些参数来创建Rect对象。
阅读全文