天天看点

XP系统+VS2010+opencv.2.4.1 的配置说明2.5 配置链接库2.6 在Windows文件夹下加入OpenCV动态链接库

1.什么是Opencv?

OpenCV的全称是:Open Source Computer Vision Library。OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。该库也有大量的Python, Java and MATLAB/OCTAVE (版本2.5)的接口。这些语言的API接口函数可以通过在线文档获得。如今也提供对于C#,Ch, Ruby的支持。

所有新的开发和算法都是用C++接口。一个使用CUDA的GPU接口也于2010年9月开始实现。

2.VS2010+opencv配置

2.1 先前准备

安装VS2010,已经安装的就不需要了,没有安装的解压VS2010安装包,根据提示安装,当然也可以是别的版本。

下载opencv SDK,可以到官网:http://opencv.org/上找到OpenCV windows版下载下来并安装,与其说是安装,不如叫解压更加合适,因为我们下载得到的exe安装程序就是一个自解压程序而已,在这里我提供的是Opencv.2.4.1版本。 如何使自己下载的opencv SDK,下载完后得到文件OpenCV 2.4.1,双击后会提示解压到某个地方,推荐放到D:\Program Files\下,比如D:\Program Files,(因为OpenCV项目文件打包的时候,根目录就是opencv,所以我们不需要额外的新建一个名为opencv的文件夹,然后再解压,那是多此一举的事情)然后点击Extract按钮。等一段时间,OpenCV2.4.1近3个多G的文件就解压到了D:\Program Files下。 其中,build里面是使用OpenCV相关的文件。而sources里面是源代码,需要用cmake来“解包”,如何“解包”大家百度一下就可以。在这里我只讲解如何配置我所提供的Opencv2.4.1:首先解压文件到

D:\Program Files\,注意因为文件打包是根目录就是opencv,所以不需要再重新建名opencv。

2.2 配置环境变量

这步的配置方法如下:

我的电脑->(右键)属性->高级(标签)->环境变量->(双击)path(用户,系统里面的path任选其一)->在变量值里面添加相应的路径。

对于32位系统,就添加:

”…… opencv\build\x86\vc10\bin”

而对于64位系统,可以两个都添加上:

”…… opencv\build\x86\vc10\bin”

和 ”…… opencv\build\x64\vc10\bin”,

这样,到时候才可以在编译器Win32和X64中来回切换都吃得开,游刃有余。

例如:我设置的是:

 D:\Program Files\opencv\build\x86\vc10\bin   

注:变量值实际为bin文件夹的路径;D表示OpenCV安装于D盘;X64表示运行系统环境位64位系统(我提供的opencv中没有X64),若安装于32位系统,应为X86;vc10表示编译环境为Microsoft Visual Studio 2010;变量添加完成后需要注销系统,才会生效。

2.3 配置工程包含(include)目录

之前看过的好多博文都说“每次新建工程都要重新配置”,其实不用这样麻烦的,打开VS2010,点<视图>--<属性管理器>,在新出现的“属性管理器”工作区中,点击项目->Debug|Win32->Microsoft.Cpp.Win32.user (反键属性,或者双击)即可打开属性页面,我这样做的时候,属性界面是空的什么都没有,于是我打开了一个之前一个项目,就有了。

打开熟悉的属性页面后,就是一番配置了。首先是在

【通用属性】 ->【VC++目录】 ->【包含目录中】

添加上

D:\Program Files\OpenCV\build\x86\vc10\include

D:\Program Files\OpenCV\build\x86\vc10\include\opencv

D:\Program Files\OpenCV\build\x86\vc10\include\opencv2 这三个目录。

当然,这是之前把OpenCV解压到D:\Program Files\下的情况。实际的路径还要看你自己把OpenCV解压到了哪个目录下,根据实际情况来调节。

2.4 配置工程库(lib)目录

其实这步和上一步差不多,【通用属性】 ->【VC++目录】 ->【库目录】。

添加上D:\Program Files\OpenCV\build\x86\vc10\lib这个路径。

这里选择x86还是x64是一个常常令人困惑的问题。当然,对于32位操作系统,铁定就是选x86了。如果是64位操作系统,很多童鞋会想当然自作聪明地选择x64,其实不然。正确的理解是这样的:

不管你是32位还是64位操作系统,只用管你用win32编译器还是X64编译器。其实配置选择什么跟64位还是32位系统没有直接的关系,而是在于你在编译你的程序的时候是使用能哪个编译器。

编译器选的是win32,就用x86编译器选的是X64,就用X64。不过一般情况下,都是用的win32的X86编译器。所以,无论32还是64位操作系统,配置文件最好都选择x86版的。另外,这里的vc10表示vs2010,如果是其他版本的visual studio,稍微要微调一下。

2.5 配置链接库

【通用属性】 ->【链接器】->【输入】->【附加的依赖项】

添加如下的内容:

opencv_calib3d241d.lib;opencv_contrib241d.lib;opencv_core241d.lib;opencv_features2d241d.lib;opencv_flann241d.lib;opencv_gpu241d.lib;opencv_highgui241d.lib;opencv_imgproc241d.lib;opencv_legacy241d.lib;opencv_ml241d.lib;opencv_objdetect241d.lib;opencv_ts241d.lib;opencv_video241d.lib;opencv_nonfree241d.lib;opencv_photo241d.lib;opencv_stitching241d.lib;opencv_videostab241d.lib

需要注意的是,所粘贴内容即为:

D:\Program Files\OpenCV\build\x86\vc10\lib下所有lib库文件的名字;其中的241代表我们的OpenCV版本为2.4.1,若是其他版本的配置则在这里要进行相应的更改,比如说2.4.6版的OpenCV,那么这里的opencv_calib3d248d.lib就要改成opencv_calib3d246d.lib了。Debug文件库名有d结尾,Release没有,如 opencv_ts248d.lib和opencv_ts248.lib 不过我一般是在这里把带d和不带d的统统写在这里,release下的就不用额外填了。

2.6 在Windows文件夹下加入OpenCV动态链接库

这一步是各种介绍OpenCV的配置的相关博文中都没写出来的。根据这些博文配置出来的环境,在运行基于OpenCV的程序的时候,有问题:最简单粗暴的方法,是把相关的dll都拷贝到Windows操作系统的目录下。如果你的Windows安装在C盘,那么路径就是C:\Windows。按照之前我的OpenCV的存放环境,这些dll存放在

D:\Program Files\opencv\build\x86\vc10\bin目录下。

到这个目录下,【Alt+A】全选,【Alt+C】拷贝,然后转到C:\Windows下面,【Alt+V】复制,简单粗暴地就完成了。

恩,环境配置大功告成,我们来测试一下成果吧~

1.测试

解压当前文件下的TestOpencv.rar,VS2010打开,运行看是否成功。

2.可能遇到的问题

4.1出现找不到tbb_debug.dll错误,两种解决方法

方法一:在D:\Program Files\OpenCV\tbb\tbb40_20120408oss_win\tbb40_20120408oss\bin\ia32\vc10的下面有个tbb.dll文件,把它复制到你的工程debug目录下改成tbb_debug.dll即可。

方法二:下载一个Intel Tbb 3.0,下载见http://pan.baidu.com/share/link?shareid=232085&uk=487907638 。下载完成后解压,在bin文件夹下面对应的文件夹里面你就能找到tbb_debug.dll,把tbb_debug.dll拷贝到tbb目录下的对应文件夹里面即可。

继续阅读