1. cvCloneImage()
......
IplImag *img = cvCreateImage( cvSize(frame->width,frame->hight), frame->depth, frame->nChannels );
img = cvCloneImage(frame);
这里出现内存泄露,因为调用cvCloneImage()之前已经用cvCreateImage()为图像分配了内存空间,而cvCloneImage()函数是对源图像的所有数据的拷贝,包括图像头、数据、ROI等,这就导致原来分配的内存空间变成了内存碎片,造成内存泄露。.解决方法如下:
IplImag *img = cvCloneImage(frame);
或
IplImag *img = cvCreateImage( cvSize(frame->width,frame->hight), frame->depth, frame->nChannels );
cvReleaseImage(&img);
img = cvCloneImage(frame);
或
IplImag *img = cvCreateImage( cvSize(frame->width,frame->hight), frame->depth, frame->nChannels );
img = cvCloneImage(frame);
cvCopy(frame,img,NULL);
2. cvGetCols()、cvGetRows()
......
CvMat *srcMat = cvCreateMat(width, height, C