1

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

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() 就没有任何泄漏)。有没有办法解决它?

谢谢!

4

1 回答 1

2

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

备注1:您不必担心显式释放m_image,这就是 Mat 首先要做的。

Remark2: waitKey(0)永远持有窗口。

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

于 2012-12-02T14:31:20.493 回答