OPENCV解决内存泄露
2012-10-19 22:46 MKJOHN 阅读(655) 评论(0) 收藏 举报摘自: http://blog.csdn.net/woxincd/article/details/7712026
cvLoadImage函数:
造成内存泄露
使用CvvImage类代替。并且使用CvvImage类的Load函数。
使用过程大概如下:
//变量定义:
CvvImage pSrcImg;
IplImag *pSrcImgCopy ; //使用IplImag变量做个拷贝。毕竟IplImag 类处理方便。
//获取图像:
pSrcImg.Load(str); //str为Cstring类型的图像文件名
pSrcImgCopy = pSrcImg.GetImage(); //拷贝出pSrcImg的图像数据。
//释放内存
pSrcImg变量不需要每次释放,因为每次Load时是覆盖以前的内存区域。pSrcImgCopy同样。
不过在程序结束时要释放,以免产生内存泄露或者别人以为你忘了。
cvReleaseImage(&pSrcImgCopy );
pSrcImg.Destroy();
不过要正确释放pSrcImgCopy时,声明时必须create下:
pSrcImgCopy =cvCreateImage(cvSize(IMGWIDHT,IMGHEIGHT),IPL_DEPTH_8U, 3);
//IMGWIDHT,IMGHEIGHT为图像宽和高。
浙公网安备 33010602011771号