c++ - 如何释放由 imdecode 创建的 IplImage

标签 c++ visual-c++ opencv

对于这样创建的 IplImage,我不知道如何释放内存:

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

有什么建议吗?

最佳答案

您的示例不处理指针。内存在堆栈上,在作用域结束之前你没有什么可以释放的。

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

关于c++ - 如何释放由 imdecode 创建的 IplImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4462272/

相关文章:

c++ - 如何从一个配置中排除 CMake 目标?

带有 fstream 或数据库的 C++

c++ - 使用 vlfeat 进行密集 SIFT 关键点和描述符提取

c++ - 与 move 构造函数配对时发生意外的析构函数调用

c++ - 正则表达式慢

macos - NSImage 到 cv::Mat,反之亦然

opencv - 在 OpenCV 中放大数组

c++ - 如何打印集合中的所有元素?

c++ - 链接器无法在库中找到符号

C++11 正则表达式分组