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

C++ opencv imshow导致内存泄漏(c+;+;),c++,opencv,memory-leaks,C++,Opencv,Memory Leaks,我编写了这个方法(它显示一个图像): m_图像为Mat类型 我也使用这个析构函数: ImageLoader::~ImageLoader() { m_image.release(); } 然而,Valgrind发现了大量内存泄漏。这是由以下两个cv函数引起的: namedWindow和imshow(因为没有调用displayMyImage()就没有任何泄漏)。 有办法解决吗 谢谢 第一个问题是命名窗口的名称不同: “新窗口1”不同于“新窗口1”。第二,我告诉你我从来没有使用过namedW

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

m_图像为Mat类型

我也使用这个析构函数:

ImageLoader::~ImageLoader()
{
    m_image.release();
}
然而,Valgrind发现了大量内存泄漏。这是由以下两个cv函数引起的: namedWindowimshow(因为没有调用displayMyImage()就没有任何泄漏)。 有办法解决吗


谢谢

第一个问题是命名窗口的名称不同:
“新窗口1”
不同于
“新窗口1”
。第二,我告诉你我从来没有使用过namedWindow,你只需要使用imshow在名为
“new\u window1”
的图像窗口中显示图像

Remark1:您不必担心显式发布
m_image
,这正是Mat的初衷

Remark2:
waitKey(0)
永远保持窗口


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

它们可能是误报,但我认为你不需要调用
release()
。你确定在收集泄漏之前关闭窗口吗?是的,我确定。它因“waitKey()”而关闭。如果您认为opencv中存在错误,您可以申请以下错误报告,而无需像前面所说的那样明确调用Mat.release()。您可以使用释放为GUI分配的内存
ImageLoader::~ImageLoader()
{
    m_image.release();
}