[英]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 函数引起的: namedWindow和imshow (因为没有调用 displayMyImage() 就没有任何泄漏)。 有办法解决吗?
谢谢!
您的第一个问题是您对命名窗口的命名不同: "new_Window1"
与"new_window1"
不同。 其次,我告诉你我从来没有使用过namedWindow,你只需要使用imshow在一个名为"new_window1"
的图像窗口中显示一个图像。
备注1:您无需担心显式释放m_image
,这就是 Mat 首先的用途。
备注2: waitKey(0)
永远持有窗口。
我之前在这里看到过这个问题,所以我想你也可以在这里搜索答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.