Duanxx的OpenCV学习:OpenCV2.4.9+vld+VS2012环境搭建

安装opencv

1.1 解压安装包

         所谓的安装,其实就是吧opencv的源码和编译好的dll库文件解压出来而已。目录自行选择,最好不要是中文路径。

1.2 配置环境变量

         之所以要配置环境变量,是因为Opencv使用的是动态链接库,在运行Opencv的程序时需要依赖这些动态链接库,配置环境变量,就是为了告诉程序,Opencv所依赖的动态链接库在什么地方。

         因为我装的是VS2012对应的目录为vc11,进入opencv\build\x86\vc11\bin中,可以看到很多的*.dll文件,这些就是Opencv依赖的动态链接库。这里即便是x64的体统,也最好选择x86的库。(注:VS2013对应vc12VS2012对应vc11VS2010对应vc10

         在控制面板中搜索“环境变量”,编辑系统环境变量->高级->环境变量->系统变量->Path->编辑

在最后添加一个分号”;”后,再将上面的dll文件所在的绝对路径拷贝到这里来,最终写入的是;D:\ProgramFiles\opencv\opencv\build\x86\vc11\bin



配置vs2012的Opencv环境

2.1 新建工程

         新建一个C++工程,选择Win32的控制台应用程序。


在工程设置中选择Empty Project



2.2 新建工程配置表单

         找到Property Manager,如果没有看到,可以在view->Property Manager中找到这个选项卡。



         选择Debug->Add New Project Property Sheet




         将新建的属性表单的名字命名为OpenCV_Debug




2.3 添加Opencv的头文件和库文件

         因为Opencv是开发开放源码的,我们再使用Opencv的库函数时,可以直接查看源码。包含头文件的存放路径就是为了可以索引到源码,包含库文件是为了可以直接调用生成好的Opencv函数,而无需我们自己编译。

         双击OpenCV_Debug,进入属性表单的编辑界面。

         在VC++ Directories->Include Directories中添加OpenCV所有模块的头文件。




         选择下拉,然后进入Edit,添加Opencv下include 的路径。




以同样的方式添加Opencv在Vs2012下的lib




2.4 添加依赖库

         在编译完成后,后有link的过程,这个过程中会查找所依赖的Opencv的lib,此处就是将需要依赖的lib都列出来,实际上就是Opencv的模块库。






添加的lib列表如下,其中d的意思是debug,即这些库是在debug模式下生成和使用的。

opencv_core249d.lib

opencv_imgproc249d.lib

opencv_highgui249d.lib

opencv_ml249d.lib

opencv_video249d.lib

opencv_features2d249d.lib

opencv_calib3d249d.lib

opencv_objdetect249d.lib

opencv_contrib249d.lib

opencv_legacy249d.lib

opencv_flann249d.lib

 

         从2.2开始再做一次,只是将Debug换成Release。在最后添加的依赖库文件列表如下,这里由于是Release模式,后面没有d。

opencv_core249.lib

opencv_imgproc249.lib

opencv_highgui249.lib

opencv_ml249.lib

opencv_video249.lib

opencv_features2d249.lib

opencv_calib3d249.lib

opencv_objdetect249.lib

opencv_contrib249.lib

opencv_legacy249.lib

opencv_flann249.lib

 

最终可以得到如下的两种配置文件:



2.5 为已有工程添加Opencv配置

对于后来新建的工程,就无需在重复上面的操作了,只需要在Property Manager中选择

Add Existing Property Sheet ,选择刚才建立的Debug配置和Release配置即可。



三 配置VLD

         由于C++没有垃圾管理机制,内存的分配和释放都需要程序员自己来控制,在C++代码中,内存泄露如果不严重的话,短时间内对程序没有太大的影响,在进程终止时,所分配的内存便会释放,但是长时间运行的话,其性能上的消耗是惊人的,甚至会影响其他程序的运行同时,内存问题本身是不明显的,当出现异常时很难检查。

         VLD是一款在windows下使用的C++内存泄露检查工具,可以很好的检查内存泄露问题,只能在Debug下使用。下载visual leak detector安装后,可从2.3步开始

         添加vld的头文件



添加vld的库文件



添加vld的库依赖



使用时,只需要添加#include <vld.h>即可


四 测试代码

#include <opencv2/opencv.hpp> 
#include <vld.h>
 
using namespace cv;
 
const string windows_name ="ImageWindows";
 
int main()
{
         //type指的是打开图片的方式,此处是根据图片的原始数据打开真实的图片
         inttype = CV_LOAD_IMAGE_ANYCOLOR | CV_LOAD_IMAGE_ANYDEPTH;
         Matimg = imread("./image/EVA_03.jpg",type);//此处我新建了一个文件夹image
                                                    //在image下放了一张图片EVA_03.jpg
         if(img.empty())
         {
                   fprintf(stderr,"Error:loadimage failed.");
                   return-1;
         }
 
         namedWindow(windows_name,CV_WINDOW_AUTOSIZE);  //创建一个名字为windows_name的窗口
         imshow(windows_name,img);  //在窗口windows_name中显示刚才的图片
         waitKey();//等待一个按键,然后退出程序
 
         return0;
}


 

运行效果如下图:

         在Debug模式下,可以看到VLD的输出。





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值