繁体   English   中英

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

[英]opencv imshow causing a memory leak (c++)

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

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)永远持有窗口。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM