博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CvvImage内存泄漏解决
阅读量:5123 次
发布时间:2019-06-13

本文共 840 字,大约阅读时间需要 2 分钟。

最近项目使用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

你可能感兴趣的文章
Python IO模型
查看>>
Ugly Windows
查看>>
DataGridView的行的字体颜色变化
查看>>
Java再学习——关于ConcurrentHashMap
查看>>
如何处理Win10电脑黑屏后出现代码0xc0000225的错误?
查看>>
局域网内手机访问电脑网站注意几点
查看>>
[Serializable]的应用--注册码的生成,加密和验证
查看>>
Day19内容回顾
查看>>
第七次作业
查看>>
SpringBoot项目打包
查看>>
Linux操作系统 和 Windows操作系统 的区别
查看>>
《QQ欢乐斗地主》山寨版
查看>>
文件流的使用以及序列化和反序列化的方法使用
查看>>
Android-多线程AsyncTask
查看>>
第一个Spring冲刺周期团队进展报告
查看>>
红黑树 c++ 实现
查看>>
Android 获取网络链接类型
查看>>
linux中启动与终止lnmp的脚本
查看>>
gdb中信号的处理[转]
查看>>
LeetCode【709. 转换成小写字母】
查看>>