为什么要使用CMake+VS编译OpenCV的源代码

多数情况下,能够直接使用OpenCV自带的库文件,可是假设是为了方便调试:

1. 方便调试opencv源代码

2. 为了与某些库兼容

还是须要又一次编译opencv的源代码。

OpenCV1.0版本号有windowslinux之分,在 \OpenCV\_make目录以下已经存在了一个opencv.dsw的project文件。直接用VC6,或者。Visual Studio就能够打开该project,从而能够进行对应的编译工作;而对于OpenCV2.0及以后的版本号而言,就没有类似的project文件了。这个时候,就须要你自己利用CMake工具来生成一个Visual Studio的project文件了。


CMake编译OpenCV

OpenCV的下载与安装

下载Windows下的安装文件OpenCV-2.4.3.exe,双击解压。选择须要的安装文件夹就可以。我的存放路径为D:\opencv。

解压完毕后就是须要的文件了。注意对应的文件夹不能包括中文。

编译OpenCV

这一步不是必须的,假设不编译,能够使用编译好的库,可是不能进行源码的跟踪调试(未验证),因此这里还是编译一下。

编译用的工具Cmake,这是一个跨平台的安装编译工具。主要用于把OpenCV的源代码生成相应的VSproject。操作例如以下。

 

1、如图所看到的。设置OpenCV的安装文件路径和想要生成的文件路径。

2、点击左下方configure,在弹出的选项中选择Visual Studio 10(相应2010版本号)。

3、点击完毕就会进行配置,配置后的界面例如以下图所看到的,选择须要增加的文件。我这里勾上BUILD_EXAMPLES其它选项默认。

4、改动完毕后再次点击configure进行配置。完毕后点击Generate,至此完毕配置。

SNAGHTMLa64bc2

 

使用VS2010编译版本号库

以上操作完毕后,就能够在生成的文件夹下找到相应的project文件,依据上图配置我的文件路径为D:\OpenCV24\OpenCV.sln,使用VS2010打开,进行例如以下操作。

1、在Debug下,选择解决方式(解决方式资源管理器)里的 解决方式“OpenCV”。点右键,执行"又一次生成解决方式"。

image

2、生成成功后。在选择INSTALL项目,右键执行生成;

3、在Release下进行1-2步的操作。

4、以上操作完毕后,针对当前的系统的OpenCV库就生成了。

VS的相关配置

也即告诉VC去什么地方寻找OpenCV的头文件和库。打开VC。选择菜单“工具”->“选项”->“项目和解决方式”->“VC++文件夹”->“包括文件”。在VS2010中此选项打开例如以下图所看到的,显示编辑功能被否决。

SNAGHTMLcbd33a

可以在详细的项目中右键->属性来设置,仅仅是这种设置无法被继承。每个项目都须要单独设置,因此须要丛一个可以被继承的全局设置,方法例如以下:

1、在VS中确保至少有一个project被打开的情况下,点击“视图”->“其它窗体”->“属性管理器”,然后从左側随意项目中打开“Debug| Win32”->“Microsoft.Cpp.Win32.user”,例如以下图所看到的。

image

2、在弹出例如以下图所看到的的窗体中,加入文件包括与库的路径。点击左側VC++文件夹,编辑右側的包括文件夹与库文件夹。分别加入相应的路径。

SNAGHTMLd1d2dc

相应的路径例如以下:

包括文件夹

使用提供的库须要加入(相应我自己的安装文件夹。路径依据个人安装改动)

D:\opencv\build\include

D:\opencv\build\include\opencv

D:\opencv\build\include\opencv2

假设使用的是上文编译的库的路径,则加入(相应我自己的文件夹,路径依据个人安装改动)

D:\OpenCV24\install\include

D:\OpenCV24\install\include\opencv

D:\OpenCV24\install\include\opencv2

SNAGHTMLd945ca

64为系统相应更改。

库文件夹

在OpenCV的安装文件里已经为VC2008和2010预先编译好了动态库与静态库,因此能够不须要编译直接加入。

针对VS2010加入(相应我自己的文件夹。路径依据个人安装改动)

D:\opencv\build\x86\vc10\lib

加入上文编译的库则加入(相应我自己的文件夹。路径依据个人安装改动)

D:\OpenCV24\install\lib

注:有的资料中说法例如以下:

(注:因为自己编译成功,lib文件在Debug和Release两个文件里,载入库时需到Debug和Release中, 我配置的库文件夹为:D:\Program Files\OpenCV2.3.1\opencv\build\my\install\lib\Debug,否则调试时无法进入Open CV代码中。 by:Jackyzzy 赵振阳)

可是我的文件夹下并没有相应的文件夹。反而在D:\OpenCV24\lib文件夹下有相应的Debug文件夹,文件经过对照也一致。因此这个地方到底加入什么地方的眼下还没有验证,已经验证的同学欢迎告知我。

到这里。配置完成,随意打开一个项目通过属性来查看,能够看到以上配置已经被继承。

环境变量设置

刚才设置的是动态库,因此还须要将OpenCV的dll文件所在的文件夹增加Path环境变量。dll文件文件夹例如以下:

自己编译的库

D:\OpenCV24\install\bin

使用提供的库(VS2010)

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

有的资料中说因为有些函数须要使用TBB,因此须要把TBB相关也加入环境变量,可是我并没有在opencv\build\common\tbb这个路径中找到TBB文件件。在2.4.3版本号中经过查找此目录存在与opencv\build\common\tbb 路径下,因此这部分相同未验证。

至此。就完毕了OpenCV的安装与配置。




posted on 2017-07-04 21:15  wgwyanfs  阅读(10202)  评论(0编辑  收藏  举报

导航