歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> OpenCV復制一個或多個ROI圖像區域

OpenCV復制一個或多個ROI圖像區域

日期:2017/3/1 10:02:56   编辑:Linux編程

在對圖像進行處理過程中,我們經常需要對圖像的某個或多個感興趣區域進行處理。在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;
}

原圖

單個ROI圖像區域

多個ROI圖像區域

Copyright © Linux教程網 All Rights Reserved