1. 程式人生 > >【OpenCV】影象的記憶體分配與釋放以及複製影象

【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 釋放,否則容易產生記憶體洩漏