我写了这个方法(它显示了一个图像):
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(),没有任何泄漏)。 有办法解决吗?
谢谢!
答案 0 :(得分:2)
您的第一个问题是您以不同方式命名命名窗口:
"new_Window1"
与"new_window1"
不同。其次,我告诉你我从未使用过namedWindow,你只需要使用imshow在名为"new_window1"
的图像窗口中显示图像。
备注1:您无需担心明确释放m_image
,这就是Mat首先要做的事情。
备注2: waitKey(0)
永远保留窗口。
我之前在这里看过这个问题,所以我想你也可以在这里搜索答案。