• 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)。

  • 相关阅读:
    wpf arcgis engine 当前没有或未启用Spatial Analyst许可解决办法
    arcglobe 图层三大类说明
    sql自带函数语句
    wpf 前台获取资源文件路径问题
    Microsoft.Office.Interop.Excel的用法
    WPF:父窗口与子窗口的层次关系
    wpf 拖图片到窗体
    wpf comboBox取值问题
    wpf 窗体内容旋转效果 网摘
    js拖动滑块
  • 原文地址:https://www.cnblogs.com/cheng07045406/p/3223853.html
Copyright © 2020-2023  润新知