我在这个简单的 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 网络摄像头。
谢谢!