这几天弄的数字识别程序开启后内存涨的厉害,后来查资料才解决了问题,这里记录下,以防自己下次又犯次错误。
opencv中使用cvCreateImage()新建一个IplImage*数据类型和使用cvCreateMat()新建一个CvMat*类型,都是需要cvReleaseImage() 和 cvReleaseMat()来进行释放的,可参考opencv官方程序的例子在结束程序时都会释放使用到的这两种数据结构的内存。
这里需要注意的是,在使用轮廓查找函数cvFindContours()时,需要释放内存,例如
CvMemStorage * storage = cvCreateMemStorage(0);
CvSeq * contour = 0;
cvFindContours( pImgCanny, storage, &contour, sizeof(CvContour), CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE, cvPoint(0,0)); //寻找轮廓
cvReleaseMemStorage(&storage);
更详细的内容请参考这里http://blog.csdn.net/xiaowei_cqu/article/details/7586847