【OpenCV】复制、切割出图像ROI区域
2015-04-15 12:48
330 查看
对图像设定ROI的函数是:
cvSetImageROI(IplImage* src,CvRect rect);
src 表示的是源图像,
rect 指的是ROI区域。如果要取消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_复制一个或多个ROI图像区域
- OpenCV复制一个或多个ROI图像区域
- OpenCV_复制一个或多个ROI图像区域
- OpenCV_复制一个或多个ROI图像区域
- 【OpenCV入门教程之四】 ROI区域图像叠加&初级图像混合 全剖析
- 【OpenCV入门教程之四】 ROI区域图像叠加&初级图像混合 全剖析
- OpenCV设置感兴趣区域ROI,对图像进行局部处理
- 【OpenCV入门教程之四】 ROI区域图像叠加&初级图像混合 全剖析
- opencv开发笔记(八):利用感兴趣区域ROI实现图像叠加
- c# opencvsharp学习笔记(3)兴趣区域ROI,图像叠加,操作像素点
- OpenCV 中Mat对象的获取ROI区域自图像的问题
- OpenCV——使用ROI进行图像切割
- 【OpenCV入门教程之四】 ROI区域图像叠加&初级图像混合 全剖析
- 【OpenCV入门教程之四】 ROI区域图像叠加&初级图像混合 全剖析
- 【OpenCV入门教程之四】 ROI区域图像叠加&初级图像混合 全剖析
- OpenCV中图像及子图像ROI之间的复制
- OpenCV 鼠标响应函数 ,用鼠标选中一块图像区域,然后计算选中的ROI区域的统计直方图
- 【OpenCV入门教程之四】 ROI区域图像叠加&初级图像混合 全剖析
- OPENCV图像处理基础(二)感兴趣区域ROI