[转]感兴趣区域(ROI)

转载自: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的作用。

原文地址:https://www.cnblogs.com/muxiaoruo/p/2669129.html