我在以下简单的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/