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