您的位置:首页 > 运维架构

OpenCV对感兴趣区域(ROI)的操作

2014-01-16 15:54 411 查看
在图像处理领域,感兴趣区域(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的作用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: