如何释放由imdecode

问题描述:

创建的IplImage我不知道如何在IplImage结构的情况下释放内存中创建这样的:如何释放由imdecode

Mat matrixJpeg = cv::imdecode(Mat(jpegBuffer), 1); 
IplImage fIplImageHeader = matrixJpeg; 

这是行不通的:

cvReleaseImage(&fIplImageHeader); 

我会得到错误:

1 IntelliSense: argument of type "IplImage *" is incompatible with parameter of type "IplImage **" c:\users\richard\documents\visual studio 2010\projects\server\server\server.cpp 59 19 Server 

这也不行:

cvReleaseImage(fIplImageHeader); 

我会得到错误:

1 IntelliSense: no suitable conversion function from "IplImage" to "IplImage **" exists c:\users\richard\documents\visual studio 2010\projects\server\server\server.cpp 59 19 Server 

有什么建议?

+0

你可能混合了新旧界面吗? http://opencv.willowgarage.com/documentation/cpp/memory_management.html – 2010-12-16 15:36:35

你的例子不处理指针。内存在堆栈上,直到作用域结束后才会释放内存。

operator IplImage() const from Mat指定不复制数据。