C++ 获取cv::Mat的源ROI坐标
在opencv中,图像和图像的ROI之间没有区别。cv::Mat对象可以是:C++ 获取cv::Mat的源ROI坐标,c++,opencv,C++,Opencv,在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 = roiL
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 );
原始图像坐标应为(1,2,30,40),而原始图像坐标2应为(0,0,w,h),其中w和h分别为原始图像的宽度和高度
谢谢
Ohad要知道原始矩阵中子矩阵的坐标,可以使用函数
Mat::locateROI
// locates matrix header within a parent matrix
void locateROI( Size& wholeSize, Point& ofs ) const;
小心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;
获取第一个ROI的偏移量:
imgROI.locateROI(wholesize,offset);
cout << "imgRoi Offset: " << offset.x <<","<< offset.y << endl;
imgROI.locateROI(批发、抵消);
要知道原始矩阵中子矩阵的坐标,不能使用函数Mat::locateROI?//在父矩阵void locateROI(大小和批发、点数和ofs)常量中定位矩阵头;我认为这个答案比公认的要好得多。因为它提供了使用的例子,以及一些注意事项的指南+1.
roiROI.locateROI(wholesize,offset);
cout << "roiRoi Offset: " << offset.x <<","<< offset.y << endl;