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

2014-11-24 08:32:16 ? 作者: ? 浏览: 1

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


// 复制一个或多个ROI图像区域
#include
#include


#include



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 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::imshow("subImage", subImages[i]);
cv::waitKey(0);
}



return 0;
}


原图



单个ROI图像区域



多个ROI图像区域



-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: