码迷,mamicode.com
首页 > 其他好文 > 详细

【OpenCV】复制、切割出图像ROI区域

时间:2015-04-15 13:32:10      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:opencv   图像处理   

对图像设定ROI的函数是:

cvSetImageROI(IplImage* src,CvRect rect);
src   表示的是源图像,
rect  指的是ROI区域。
如果要取消ROI区域,那么使用函数:
cvResetImageROI(IplImage* src);
这个函数,就把src上的ROI区域取消掉。

举例:

#include <opencv/cv.h>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
// 从一幅大图像中,取出一小块图像。
int main()
{
	/* 读取大图像 */
	IplImage *img1 = cvLoadImage("C:\\Users\\Liu\\Desktop\\a2.bmp", -1);
	cvNamedWindow("Cut", CV_WINDOW_AUTOSIZE );
	cvShowImage("原图",img1);
 	/* 设置图像的ROI区域
 	注意ROI区域不要越界,必须在大图像的内部 */
 	cvSetImageROI(img1, cvRect(214, 78,100,100));
 	/* 为小图像分配内存空间
 	cvGetSize(img1)返回的是一个CvSize结构体,意思就是返回了图像img1的宽度和高度,
	由于img已经设置了ROI,所以cvGetSize函数对ROI区域有效,
	所以,返回的是ROI区域的宽度和高度 */
 	IplImage *img2 = cvCreateImage(cvGetSize(img1),
 		img1->depth,
 		img1->nChannels);
 	/* 把img1的ROI区域拷贝到img2*/
 	cvCopy(img1, img2, NULL);
 	/* 取消img1上的ROI区域 */
 	cvResetImageROI(img1);
 	cvShowImage("子图",img2);
	cvWaitKey(0);
   	cvReleaseImage(&img1);
   	cvReleaseImage(&img2);
	cvDestroyWindow("Example1");
}
技术分享技术分享

【OpenCV】复制、切割出图像ROI区域

标签:opencv   图像处理   

原文地址:http://blog.csdn.net/lsh_2013/article/details/45057601

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!