无法释放从 iplimage 创建的 mat 图像

Posted

技术标签:

【中文标题】无法释放从 iplimage 创建的 mat 图像【英文标题】:unable to free mat image which is created from iplimage 【发布时间】:2017-03-16 05:07:00 【问题描述】:

// src 是一个 IplImage,在我的代码中使用如果我在 // 函数中编写以下代码,它将释放内存 垫 m1(src); m1.release(); //不释放内存 cvReleaseImage(&src); //释放内存

【问题讨论】:

尽可能不要混合 Mat 和 IplImage answers.opencv.org/question/14285/… 这个问题虽然简洁,但完全有效且清晰 【参考方案1】:

请改用Mat m1 = imread("temp.jpg")。问题是Mat 没有释放它没有分配的内存——它是用cvLoadImage 分配的。当您将IplImage 指针指向Mat 的构造函数时,它不会复制任何内容,而是创建一个指向原始IplImage 内存的对象。

【讨论】:

以上是关于无法释放从 iplimage 创建的 mat 图像的主要内容,如果未能解决你的问题,请参考以下文章

从 IplImage 转换为 Mat 且 cvarrToMat 缺少/跳过图像数据字节

opencv mat转 iplimage 需要释放内存吗

Mat类

OpenCV学习:图像的载入和显示

用于 IplImage 的 cvLoadImage 工作,但用于 cv::Mat 的 cv::imread 不工作

setImageROI 使用 MAT 图像而不是 Iplimage