[C++][转载]opencv截取图像中某一区域的方法

Posted FL1623863129

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[C++][转载]opencv截取图像中某一区域的方法相关的知识,希望对你有一定的参考价值。

Mat图像存储:

Mat img= imread(image);
Rect rect(50,20, 200, 50); 
Mat ROI = img(rect); 
imshow("ROI_WIN",ROI);

- 其中:Rect的函数定义为: Rect(_Tp _x, _Tp _y, _Tp _width, _Tp _height); 
_Tp _x:表示矩形左上角顶点的x坐标; _Tp _y:表示矩形左上角顶点的y坐标; 
_Tp _width:表示矩形框的宽度 ; _Tp _height:表示矩形框的高度

另外:srcImage(rect).copyTo(roiImage)也可以达到同样的效果!

IplImage*图像存储:

CvSize size= cvSize(40,50);//区域大小
cvSetImageROI(pSrc,cvRect(60,70,size.width, size.height));//设置源图像ROI
IplImage* pDest = cvCreateImage(size,pSrc->depth,pSrc->nChannels);//创建目标图像
cvCopy(pSrc,pDest); //复制图像
cvResetImageROI(pDest);//源图像用完后,清空ROI
cvSaveImage("Roi.jpg",pDest);//保存目标图像

如果您使用的opencvsharp C#版本可以使用Clone方法完成ROI区域提取

以上是关于[C++][转载]opencv截取图像中某一区域的方法的主要内容,如果未能解决你的问题,请参考以下文章

opencv 输出图片中某一区域坐标平均值

OpenCV-获取图像中直线上的数据

OpenCV-获取图像中直线上的数据

OpenCV-获取图像中圆线上的数据

OpenCV-获取图像中圆线上的数据

如何截取某一窗口内的图像 VC