计算机视觉
图像处理

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

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

#include 
#include 

#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 rects;
	for (size_t i = 0; i < 4; i++)
	{
		rects.push_back(cv::Rect(i*10, i*10, 50, 50));  
	}


	std::vector 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图像区域

    

转载注明来源:CV视觉网 » OpenCV_复制一个或多个ROI图像区域

分享到:更多 ()
扫描二维码,给作者 打赏
pay_weixinpay_weixin

请选择你看完该文章的感受:

0不错 0超赞 0无聊 0扯淡 0不解 0路过

评论 19

评论前必须登录!