转载自:http://blog.sina.com.cn/s/blog_80c2be150100rs4n.html
在图像处理领域,感兴趣区域(ROI) 是从图像中选择的一个图像区域,这个区域是你的图像分析所关注的重点。圈定该区域以便进行进一步处理。
使用ROI圈定你想读的目标,可以减少处理时间,增加精度
OpenCV中的相关函数:设置/获取感兴趣区域ROI:
void cvSetImageROI(IplImage* image, CvRect rect);//设定ROI
void cvResetImageROI(IplImage* image);//重置ROI
CvRect cvGetImageROI(const IplImage* image);//获取设定的ROI
其中,通过调用cvSetImageROI(),设定对应的image里的结构体struct _IplROI* roi等。以后对该图像的操作就是对该区域处理了,因为 ROI非空时对图像的处理仅限于ROI区域。
ROI的使用和作用举例:
IplImage* img = cvLoadImage("historycreator.jpg",1);
IplImage* timg = NULL;
int width = img->width&-2;
int height = img->height&-2;
timg = cvCloneImage(img);
cvSetImageROI(timg,cvRect(0,0,width/2,height/2));
cvNamedWindow("src",1);
cvNamedWindow("dst",1);
cvShowImage("src",img);
cvShowImage("dst",timg);
cvWaitKey();
cvDestroyWindow("src");
cvDestroyWindow("dst");
cvReleaseImage(&img);
cvReleaseImage(&timg);
显示效果:显示两个窗口,src窗口显示historycreator.jpg全图,dst窗口显示clone的historycreator.jpg,由于设置其ROI为原来图像宽和高各一半,所以dst是显出来的图像是原来的1/4.这就是ROI的作用。