有时候我们需要从一幅图像中获取感兴趣的区域(region of interesting
,ROI
),将该区域裁剪成小图像,作为后期处理的输入。利用cvSetImageROI
函数便可以轻松搞定:
void cvSetImageROI ( IplImage *image,CvRect rect );
参数image
是待处理图像,rect
是ROI
矩形。
cvSetImageROI ( image, cvRect ( 100, 100, 356, 156 ) );
(100, 100)
表示ROI
区域的左上角坐标,(356, 156)
分别表示ROI
区域的长宽。
执行cvSetImageROI
之后,显示image
图像是只显示ROI
标识的一部分,即改变了指针image
,但是它仍然保留有原来图像的信息。在执行如下代码之后,image
指向原来的图像信息:
cvResetImageROI ( image );
补充说明:opencv 3
不需要cvSetImageROI
来选择ROI
,可以通过Mat
的区域来实现这一功能。