OpenCV:图像的感兴趣区域(ROI)

 
功能:
基于给定的矩形设置图像的ROI(感兴趣区域,region of interesting)
格式:
void cvSetImageROI(IplImage* image,CvRect rect);
参数
image 图像头,待处理图像
rect ROI 矩形
说明:
如果ROI为NULL并且参数rect的值不等于整个图像,则ROI被分配。大多数OpenCV函数都支持ROI,并将它作为一个独立图像进行处理,所有像素坐标都是从ROI的左上角或者左下角(基于图像结构)开始计算的。
下面用一段代码来说明cvSetImageROI函数:
#include "cv.h"
#include "highgui.h"
#include "stdio.h"
int main()
{
IplImage *img=cvLoadImage("1.jpg");
IplImage *img1=cvLoadImage("2.jpg");
cvSetImageROI(img1,cvRect(0,0,256,256));//设置img1的ROI区域
cvResize(img, img1);//缩放img图像,并将数据拷贝到img1
cvResetImageROI(img1);//这句是必须的,在img1的ROI区域显示img
cvNamedWindow("img1",1);
cvShowImage("img1",img1);
cvWaitKey(0);
cvDestroyAllWindows();
return 0;
}

cvResize(img,img1)缩放img图像,并拷贝到img1中
在提取更兴趣区域时,还可以用cvCopy(src,dst)或者cvCopyImage(src,dst)代替,但是copy就没有缩放功能


例子2
#include <highgui.h>
#include <cv.h>
#include <iostream.h>
void main()
{
IplImage * src=cvLoadImage("baboon.jpg",-1);
IplImage * dst;
CvRect roi_rect_src;
CvRect roi_rect_dst;
cvNamedWindow("src",CV_WINDOW_AUTOSIZE);
cvMoveWindow("src",200,200);    //设置窗口输出位置
cvShowImage("src",src);
cvWaitKey(0);

//基于给定的矩形设置感兴趣区域ROI
roi_rect_src.x=125;
roi_rect_src.y=300;
roi_rect_src.width=240;
roi_rect_src.height=200;
cvSetImageROI(src,roi_rect_src);
cout<<"输出源图像的ROI区域:"<<endl;
cout<<(src->roi->xOffset)<<" "<<(src->roi->yOffset)<<endl;
cout<<(src->roi->width)<<" "<<(src->roi->height)<<endl;
cvShowImage("src",src);//这时候只显示ROI区域
cvWaitKey(0);

dst=cvCloneImage(src);//完整复制包括头,ROI和数据
roi_rect_dst=cvGetImageROI(dst);//获得ROI区域
cout<<"输出目标图像的ROI区域:"<<endl;
cout<<roi_rect_dst.x<<" "<<roi_rect_dst.y<<endl;
cout<<roi_rect_dst.width<<" "<<roi_rect_dst.height<<endl;
cvNamedWindow("dst",CV_WINDOW_AUTOSIZE);
cvMoveWindow("dst",600,200);
cvShowImage("dst",dst);
cvWaitKey(0);
cvResetImageROI(dst);//释放图像的ROI
cvShowImage("dst",dst);
cvWaitKey(0);
cvReleaseImage(&src);
cvReleaseImage(&dst);
}


其他相关资料链接:
opencv学习之感兴趣区域(ROI)
https://blog.csdn.net/shihz_fy/article/details/41522679
https://www.tuicool.com/articles/2IJNJ3
c++-OpenCV 怎样提取类似方形的区域
https://yq.aliyun.com/wenzhang/show_64527
CvImage类参考手册
http://wiki.opencv.org.cn/index.php/CvImage%E7%B1%BB%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C#CvImage::roi

使用鼠标获取图像感兴趣地矩形区域实现
https://blog.csdn.net/songzitea/article/details/16954057


参考链接:

http://blog.sina.com.cn/s/blog_7155fb1a01016d6n.html

http://blog.sina.com.cn/s/blog_71fa0df50100pvzv.html

http://blog.sina.com.cn/s/blog_7155fb1a01016d6n.html


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值