OpenCV设置感兴趣区域ROI,只对图像感兴趣区域进行局部处理
源码如下:
1、Mat设置感兴趣区域
int main( )
{
//导入图像
Mat img = imread("123.jpg", 1);
//创建一个同样大小的空图像
Mat img2(img.rows,img.cols,CV_8UC3);
//设置感兴趣区域,拷贝
img(Rect(10, 15, 150, 250)).copyTo(img2);
//显示
imshow("img",img);
imshow("img2",img2);
waitKey(0);
}
2、Iplimage设置感兴趣区域
int main( int argc, char** argv )
{
IplImage *img = cvLoadImage("123.jpg", 1);/*-1:原,0:灰,1:读彩图*/
cvSetImageROI(img, cvRect(10, 15, 150, 250));//设置感兴趣区域
IplImage *img2 = cvCreateImage(cvGetSize(img),img->depth,img->nChannels);//创建一个新的用来显示局部
cvCopy(img, img2, NULL);
//重置,如果不重置,则img只会显示感兴趣的矩形一部分
cvResetImageROI(img);
cvNamedWindow("img");
cvNamedWindow("img2");
cvShowImage("img",img);
cvShowImage("img2",img2);
cvWaitKey(0);
cvDestroyAllWindows();
cvReleaseImage(&img);
cvReleaseImage(&img2);
}