OpenCV_复制一个或多个ROI图像区域
Posted 一生不过烟花
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenCV_复制一个或多个ROI图像区域相关的知识,希望对你有一定的参考价值。
在对图像进行处理过程中,我们经常需要对图像的某个或多个感兴趣区域进行处理。在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;
- }
以上是关于OpenCV_复制一个或多个ROI图像区域的主要内容,如果未能解决你的问题,请参考以下文章
opencv4opencv视频教程 C++ 5读写图像imreadimwrite读写像素at<>()修改像素值ROI区域选择(图像裁剪)RectVec3b与Vec3FCV_32F)