分享

cvcloneimage注意

 jinye6 2011-06-21
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();

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多