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

来源:互联网 发布:javagui编程代码 编辑:程序博客网 时间:2024/05/01 23:08


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


//  复制一个或多个ROI图像区域//  Author:  www.icvpr.com //  Blog: http://blog.csdn.net/icvpr  #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::imwrite("roi.jpg", 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::imwrite("roi.jpg", subImages[i]);cv::imshow("subImage", subImages[i]);cv::waitKey(0);}return 0;}




原图

单个ROI图像区域

多个ROI图像区域

    


相关内容:www.icvpr.com

-------------------------------------------------------
< 转载请注明:http://blog.csdn.net/icvpr>