现在的位置: 首页 > 综合 > 正文

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

2018年02月11日 ⁄ 综合 ⁄ 共 907字 ⁄ 字号 评论关闭

  在图像处理领域,感兴趣区域(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的作用。

【上篇】
【下篇】

抱歉!评论已关闭.