SetImageROI函数设置ROI区域用法

SetImageROI函数设置ROI区域用法

OpenCVchm文档中对cvSetImageROI函数的介绍:

void cvSetImageROI( IplImage* image, CvRect rect );
image 图像. 
rect    ROI 矩形. 
函数 cvSetImageROI 基于给定的矩形设置图像的 ROI(感兴趣区域) . 如果ROI是NULL 并且参数RECT的值不等于整个图像, ROI被分配. 不像 COI, 大多数的 OpenCV 函数支持 ROI 并且处理它就像它是一个分离的图像 (例如, 所有的像素坐标从ROI的左上角或左下角(基于图像的结构)计算。

#include<cv.h>
#include<cxcore.h>
#include<highgui.h>
void main()
{
	IplImage *res,*dst;
	CvRect rect;
	rect.x=130,rect.y=30,rect.width=200,rect.height=200;
	res=cvLoadImage("C:/Users/lufee/Pictures/cat.jpg");//载入一张图片
	dst=cvCreateImage(cvSize(200,200),8,3);//创建图像空间
	//创建窗口
	cvNamedWindow("res",CV_WINDOW_AUTOSIZE);
	cvNamedWindow("dst",CV_WINDOW_AUTOSIZE);
	//设置ROI区域
	cvSetImageROI(res,rect);
	//提取ROI
	cvCopy(res,dst);
	//取消设置
	cvResetImageROI(res);

	//显示图像
	cvShowImage("res",res);
	cvShowImage("dst",dst);
	cvWaitKey(0);

	cvDestroyWindow("res");
	cvDestroyWindow("dst");

	cvReleaseImage(&res);
	cvReleaseImage(&dst);
}

使用Mat类型的一段应用

        QMap<int,Rect>::iterator it;
        for(it = rects.begin();it != rects.end();it++)
        {
            cvSetImageROI(&image_2_temp,it.value());
            //IplImage *iplimage_temp;
            //iplimage_temp = cvCreateImage(cvSize(it.value().width,it.value().height),8,1);
            Mat mat_temp;
            mat_temp = Mat(&image_2_temp);//需要拷贝,不然存储的块内容一样
            //提取ROI块
            //cvCopy(&image_2_temp,iplimage_temp);
            list_images.push_back((IplImage)(mat_temp));//存储裁剪块
            cvResetImageROI(&image_2_temp);
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值