首页 > 代码库 > OpenCV —— ROI

OpenCV —— ROI

通过 cvResetImageRoI 函数释放ROI是非常重要的,否则其他操作将默认在ROI区域中进行

通过巧妙的使用widthStep,可以达到同ROI一样的效果 —— 如果想设置和保持一副图像的多个子区域处于活动状态(ROI 只能串行处理并且必须不断的设置和重置)

 

#include <cv.h>#include <highgui.h>int main(int argc,char** argv){    IplImage* src;    src=cvLoadImage("wukong.jpg",CV_LOAD_IMAGE_COLOR);//     cvSetImageROI(src,cvRect(50,50,100,100));//     cvAddS(src,cvScalar(90),src);//     cvResetImageROI(src);    CvRect rect=cvRect(50,50,100,100);    IplImage* sub_img=cvCreateImageHeader(cvSize(rect.width,rect.height),src->depth,src->nChannels);    sub_img->origin=src->origin;    sub_img->widthStep=src->widthStep;    sub_img->imageData=http://www.mamicode.com/src->imageData+rect.y*src->widthStep+rect.x*src->nChannels;    cvAddS(sub_img,cvScalar(90),sub_img);    cvNamedWindow("w1");    cvShowImage("w1",sub_img);    cvWaitKey();    cvReleaseImageHeader(&sub_img);    cvDestroyWindow("w1");    return 0;}