CvvImage内存泄漏解决

最近项目使用OpenCV,debug时发现使用IplImage导入图像时,即使cvReleaseImage也会有内存泄漏。
查资料,有的说使用CvvImage,即可解决内存泄漏问题。实际试了一下,内存泄漏是一样的。怀疑是vfptr没有释放。
再找解决方案,发现有人说:有两个方法可以消除memory leak的错误,一个是用 use mfc as static library的编译选项。另外一种方法,将cxcored.lib highguid.lib改成cxcore.lib和highgui.lib以后,编译运行,也是没有问题的。
其中,在VC6.0中,在project->Setting中并未找到use mfc as static library选项。但是在project->Setting->General中,可以选择Use MFC in a Static Libary,然后再重新编译,即无内存泄漏。
两种导入图像方式如下
1 IplImage *pimg = NULL;
CvvImage newCvvImage;
newCvvImage.Load("D:\\1.bmp",3);
pimg =newCvvImage.GetImage();
newCvvImage.Destroy();
2.IplImage *pimg = NULL;
pimg = cvLoadImage("D:\\1.bmp",3);
cvReleaseImage(&pimg);
pimg = NULL;

两个lib库的区别:
运行VS 2005的生成命令后生成库文件,debug模式下生成:cxcored.lib和cxcore100d.dll,
release模式下生成cxcore100.dll和cxcore.lib(可以看到debug文件比release文件多了一个字母d)。

转载于:https://www.cnblogs.com/cheng07045406/p/3223853.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值