我是OpenCV的新手(OpenCV 3.2 / opencv_ffmpeg320_64.dll / Windows 10 / Visual Studio 2017)并编写了一个处理网络摄像头视频流的程序。不幸的是,程序有内存泄漏。经过几个小时的搜索和谷歌搜索,我设法将问题分解为以下最小的例子:
#include <iostream>
#include <opencv2/opencv.hpp>
#include <thread>
CvCapture *capture;
IplImage *frame;
int main(int argc, char **argv)
{
capture = cvCreateFileCapture("http://192.168.1.123:8080/CamStream");
while (true)
{
cvWaitKey(1);
frame = cvQueryFrame(capture);
if (frame)
{
std::cout << "New image" << std::endl;
}
}
return 0;
}
正如您所看到的,我正在捕获一个简单的HTTP流。创建捕获后,将接收新帧。不幸的是,任务管理器显示了永不停止的内存增加:
什么可能导致这个问题,有什么方法可以解决它?