0

我在这个简单的 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() ,但它没有帮助。删除 set-size 行可以解决问题,但在我的真实代码中,我想改变大小,所以这不是解决方案。它正在以正确的大小获取图像。

我在做傻事吗?

顺便说一句,我使用的是罗技 B910 网络摄像头。

谢谢!

4

1 回答 1

1

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

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

于 2013-10-21T18:08:15.240 回答