我在以下简单的OpenCV代码中发现内存泄漏:

VideoCapture* capture = new VideoCapture(0);
Mat frame;
while (true) {
    capture->set( CV_CAP_PROP_FRAME_WIDTH, 1600 );
    capture->set(CV_CAP_PROP_FRAME_HEIGHT, 1200 );
    capture->read(frame);
}

这是整个代码。每次通过while循环时,都会泄漏几MB。读完之后我已经尝试过frame.release(),但这没有帮助。删除设置大小的行可以解决此问题,但是在我的实际代码中,我想更改大小,因此这不是解决方案。它以正确的尺寸获取图像。

我在做蠢事吗?

顺便说一句,我正在使用Logitech B910网络摄像头。

谢谢!

最佳答案

您是否需要更改每帧的读数大小?

设置好之后,相机将产生相同的尺寸,直到您将其重置

关于c++ - OpenCV设置大小中的内存泄漏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19501498/

10-12 02:39