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);