c++ - opencv imshow 导致内存泄漏 (c++)

标签 c++ opencv memory-leaks

我写了这个方法(它显示图像):

void ImageLoader::displayMyImage()
{
    namedWindow("new_Window1");
    imshow("new_window1", m_image);
    waitKey(2);
}

m_image 是Mat 类型。

我也用这个析构函数:

ImageLoader::~ImageLoader()
{
    m_image.release();
}

但是,Valgrind 发现了大量的内存泄漏。它是由这两个 cv 函数引起的: namedWindowimshow(因为不调用 displayMyImage() 就没有任何泄漏)。 有办法解决吗?

谢谢!

最佳答案

您的第一个问题是您以不同方式命名命名窗口: "new_Window1" 不同于 "new_window1"。其次,我告诉你我从来没有使用过namedWindow,你只需要使用imshow 在一个名为"new_window1" 的图像窗口中显示图像。

备注 1:您无需担心显式释放 m_image,这正是 Mat 的初衷。

备注2: waitKey(0) 永远保持窗口。

我以前在这里看到过这个问题,所以我想你也可以在这里搜索答案。

关于c++ - opencv imshow 导致内存泄漏 (c++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13667869/

相关文章:

c++ - OutputDebugString 错误

c++ - 搜索数组中的元素,复杂度优于 O(n)

ios - 从 Matrix 转换时旋转的图像

image - OpenCV立体匹配和视差图

objective-c - 使用垃圾收集时,新创建的 Cocoa 应用程序会出现内存泄漏吗?

c++ - 第二次检查后 flock lock 丢失

c++ - 在操作中心处理多个 toast 通知?

python - 合并 MSER 中的区域以识别 OCR 中的文本行

vb.net - 简单的Emgucv网络摄像头提要似乎内存泄漏

asp.net - Nhibernate 使用大量内存