簡體   English   中英

獲取cv :: Mat的源ROI坐標

[英]Getting the source ROI coordinates of a cv::Mat

在opencv中,圖像和圖像的ROI之間沒有區別。 一個cv :: Mat對象可以是:

cv::Mat img = cv::imread(fileName);
cv::Mat imgROI(img,cv::Rect(1,2,30,40));

我的問題是如何在原始圖像中提取原始ROI坐標,即一些預先形成以下內容的函數:

cv::Rect originalROIcoords  = roiLocationInOriginalImg(imgROI);
cv::Rect originalROIcoords2 = roiLocationInOriginalImg(img );

originalROIcoords應該是(1,2,30,40),而originalROIcoords2應該是(0,0,w,h),其中wh分別是原始圖像的寬度和高度。

謝謝。

注意ROI的ROI,因為locateROI返回與根映像相關的偏移量,並且它與ROI父級無關

cv::Mat img(100,100,CV_8UC1);               // the root image
cv::Mat imgROI(img,cv::Rect(10,10,60,60));  // a ROI in the root image
cv::Mat roiROI(imgROI,cv::Rect(5,5,30,30)); // a ROI into a ROI

Point offset;
Size wholesize;

獲得第一次投資回報率的抵消:

imgROI.locateROI(wholesize,offset);
cout << "imgRoi Offset: " << offset.x <<","<< offset.y << endl;

imgRoi Offset:10,10

獲得ROI的roi偏移量:

roiROI.locateROI(wholesize,offset);
cout << "roiRoi Offset: " << offset.x <<","<< offset.y << endl;

roiRoi Offset:15,15

同樣是為了wholesize

要知道原始矩陣Mat::locateROI矩陣的坐標,可以使用Mat::locateROI函數

// locates matrix header within a parent matrix
void locateROI( Size& wholeSize, Point& ofs ) const;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM