酒徒 盛唐烟云:cvcloneimage注意

来源:百度文库 编辑:九乡新闻网 时间:2024/05/06 12:45:26
1、imgcopy=cvCloneImage(imgseries[0]);之前要先释放内存空间:cvReleaseImage(&imgcopy);imgcopy=NULL;2、很容易引起内存泄露
cvCloneImage函数:
这个函数也会出现内存泄露!虽然可以释放,但程序复杂不知道在那里释放,因为它每次拷贝是制作图像的完整拷贝包括头、ROI和数据。不会覆盖以前的内容。每次使用时编译器会分配内存空间。一个752*480大小的图像,每次泄露的内存大约为1M。
解决方法:
使用cvCopy函数代替。
cvCopy(pSrcImg,pImg,NULL);   //代替 pImg = cvCloneImage(pSrcImg);
pImg初始化时必须分配空间,否则上述函数不能执行。pImg = cvCreateImage(cvSize(IMGWIDHT,IMGHEIGHT),IPL_DEPTH_8U, 3);
3、与CvvImage格式转换
CvvImage img;
img.CopyOf(imgseries[0]);
imgcopy=img.GetImage();