[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截取图像中某一区域的方法的主要内容,如果未能解决你的问题,请参考以下文章