OpenCV复制一个或多个ROI图像区域

在对图像进行处理过程中,我们经常需要对图像的某个或多个感兴趣区域进行处理。在OpenCV中我们能够非常方便地获取指定ROI区域的子图像。下面这段代码就演示了怎样获取指定单个ROI或多个ROI图像区域。

//  复制一个或多个ROI图像区域
#include <iostream>
#include <vector>

#include <opencv2/opencv.hpp>


int main()
{
 cv::Mat srcImage = cv::imread("../test.jpg");

 // 保存一个ROI图像区域
 cv::Mat roiImage;
 cv::Rect rect(100, 100, 100, 100);
 srcImage(rect).copyTo(roiImage);
 cv::imshow("roi", roiImage);
 cv::waitKey(0);


 // 保存多个ROI图像区域
 std::vector<cv::Rect> rects;
 for (size_t i = 0; i < 4; i++)
 {
  rects.push_back(cv::Rect(i*10, i*10, 50, 50));  
 }


 std::vector<cv::Mat> subImages;
 for(int i = 0; i < rects.size(); i++)
 {
  cv::Mat tempImg;
  srcImage(rects[i]).copyTo(tempImg);
  subImages.push_back(tempImg);

  cv::imshow("subImage", subImages[i]);
  cv::waitKey(0);


 }


 return 0;
}




转载网址:http://www.linuxidc.com/Linux/2013-01/78173.htm

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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对象。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值