Opencv+QT逐帧播放视频的内存泄漏问题以及解决方案

Opencv+QT逐帧播放视频的内存泄漏问题以及解决方案

内存泄漏:没有释放已经不能使用的内存,通常堆的内存需要显式的释放。
1、新建的图像

IplImage* image= cvCreateImage(cvSize(width,height),8,1);
CvMat* imgMat = cvCreateMat(width, height, CV_8U);
//显式释放
cvReleaseImage(&image);
cvReleaseMat(&imgMat);

2、获取视频帧

CvCapture* pCapture;
pFrame = cvQueryFrame(pCapture)
//释放
cvReleaseCapture(&pCapture);

3、在QT中显示的图像

qImage = new QImage(QSize(width, height), QImage::Format_RGB888);
tempImage = cvCreateImageHeader(cvSize(width,height), 8, 3);
//释放
delete qImage;
cvReleaseImageHeader(&tempImage);

你可能感兴趣的:(opencv(C++版))