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

【OpenCV】图像的内存分配与释放、复制图像及设置图像ROI区域

时间:2015-04-14 11:12:26      阅读:284      评论:0      收藏:0      [点我收藏+]

标签:opencv

(1) 分配内存给一幅新图像:

IplImage* cvCreateImage( CvSize size, int depth, int channels );
size     -图像宽、高. 
depth   -图像元素的位深度,可以是下面的其中之一: 
             IPL_DEPTH_8U - 无符号8位整型
             IPL_DEPTH_8S - 有符号8位整型
             IPL_DEPTH_16U - 无符号16位整型
             IPL_DEPTH_16S - 有符号16位整型
             IPL_DEPTH_32S - 有符号32位整型
             IPL_DEPTH_32F - 单精度浮点数 
             IPL_DEPTH_64F - 双精度浮点数 
channels -每个元素(像素)的颜色通道数量.可以是1, 2, 3 或 4.通道是交叉存取的,例如通常的彩色图像数据排列是: b0g0 r0 b1 g1 r1 ...

//示例

IplImage*img=cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,1);

(2) 释放图像:

IplImage*img=cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,1);
cvReleaseImage(&img);

(3) 复制图像:

IplImage*img1=cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,1);
IplImage*img2;
img2=cvCloneImage(img1);  // 注意通过cvCloneImage得到的图像 也要用cvReleaseImage 释放,否则容易产生内存泄漏

(4) 设置、获取、释放感兴趣区域ROI:

//设置图像ROI区域
void  cvSetImageROI(IplImage* image, CvRect rect);
//释放基于给定矩阵设置的图像ROI
void  cvResetImageROI(IplImage* image);
//返回图像ROI坐标
CvRect cvGetImageROI(const IplImage* image);

大多数OpenCV函数都支持 ROI,region of interests,设置了ROI之后,函数对图片的处理只会应用到ROI区域上。

 

【OpenCV】图像的内存分配与释放、复制图像及设置图像ROI区域

标签:opencv

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

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