系统环境 :win10 企业版 Build 14393。Thinkpad x240 8GB内存 I5处理器,256GBssd系统盘,5400转硬盘,生成工程文件后,使用vs2015编译单一版本大约10分钟左右。
使用 cmake-3.4.0-win32-x86.exe,下载地址:https://cmake.org/files/v3.4/cmake-3.4.0-win32-x86.exe。
使用CMake3.6.1 和 CMake3.7.1 编译时会出现错误。(测试使用CMAke3.6.1 和 CMake3.7.1 的 win64-x64 版本,均有 bioinspired 模块编译失败问题。提示:error MSB6006: “cmd.exe”已退出,代码为 -1073741571)。 网上也看到不少博客使用CMake3.7.0编译正常。 如果不是从github下载源码,不需要使用git,因为opencv.org提供的下载包里包含对应的源码。解压后的 sources 目录就是源码包。
Git下载页面:https://git-scm.com/download/win。
具体下载链接:https://github.com/git-for-windows/git/releases/download/v2.11.0.windows.1/Git-2.11.0-64-bit.exe。
opencv官网提供打包好的sdk(build目录)+源码包(sources)。当前稳定最新版本3.1版。源码包使用cmake管理,cmake生成工程文件时,自动检测依赖文件版本,并下载到本地sources\3rdparty下面对应的目录中。在下载这些依赖文件时,有可能会下载错误,多尝试几次,总会有下载成功的时候。X86和x64依赖包是不同的。对于不同的vs版本也有差异。
官网如下图所示,点击 LATEST DOWNLOADS 链接,下载最新版本。点击Fork me Github 连接到github源码管理页面。
代码下载官网:https://github.com/opencv/opencv,代码下载速度很不稳定,有时瞬间完成,有时下载出错。多试几次吧,总会赶上正常的时候。
git clone https://github.com/opencv/opencv.git
# 查一下tag标签,使用最新的3.1.0标签,迁出代码,并建立一个分支dev3.1.0
git tag
git checkout 3.1.0 -b dev3.1.0
官网:https://github.com/opencv/opencv_contrib
git clone https://github.com/opencv/opencv_contrib.git
git tag
#3.0.0
#3.0.0-beta
#3.0.0-rc1
#3.1.0
# 使用最新的3.1.0标签,迁出代码,并建立一个分支dev3.1.0
git checkout 3.1.0 -b dev3.1.0
如下图所示。opencv和opencv_contrib都切换到3.1.0版本下。
指定源码目录:d:/git/opencv 指定build目标目录:d:/git/opencv/build/x86。目录不存在,会提示创建。
Build目录设置在源码下面的build/x86。 点击Configure 按钮生成配置。如下图:
选择Visual Studio 14 2015,表示生成x86版本工程文件。如果要生成x64位工程文件,此处选择 Visual Studio 14 2015 Win64。
选择 Use Default Native Compilers 选项。
点击Finish按钮,进行配置,这个过程会下在一些必须的第三方库文件,放到opencv\3rdparty对应子目录的downloads文件夹下。
下载过程中可能失败,多试几次。如果已经在别处下载过同版本的文件,把downloads 拷贝过来也可以的。
使用CMake3.6.1 和 CMake3.7.1 在我的系统下会出现下载失败。使用CMake3.4.0版本没出现失败情况。
如果不需要指定扩展模块 opencv_contrib,就可以直接点击Cenerate按钮生成工程文件了。
这里我们指定opencv_contrib扩展模块。指定OPENCV_EXTRA_MODULES_PATH为d:/git/opencv_contrib/modules。注意,要指定到modules目录。
点击Configure,重新生成带opencv_contrib/modules的配置。
CMakes的几个配置选项:
BUILD_EXAMPLES 勾选会编译examples,初学建议勾选。此项勾选后,会生成大量demo。编译时间较长。
DOWNLOAD_EXTERNAL_TEST_DATA 勾选此项,会下载测试数据。
BUILD_SHARED_LIBS 动态库勾选,静态库不选。
BUILD_WITH_STATIC_CRT 生成静态库建议不选。
OPENCV_EXTRA_MODULES_PATH 需设置为opencv_contrib/modules目录
点击 Ganerate按钮,生成VS2015工程文件和解决方案文件。看到Cenerating done,说明已经生成vs工程文件和解决方案文件。
使用vs2015打开 D:\git\opencv\build\x86\OpenCV.sln文件,编译debug版本。提示加载项目163个。看到实际154个工程。
编译。大约10分钟,0个错误,558个警告(大部分是C4809警告)。
重新单独编译INSTALL工程,生成install目录,即得到自己编译的sdk目录。
Install下面有如下目录:
install\bin\opencv_waldboost_detectord.exe
install\etc\haarcascades
install\etc\lbpcascades
install\include\opencv
install\include\opencv2
install\java
install\x86\vc14\bin
install\x86\vc14\lib
install\x86\vc14\staticlib\ippicvmt.lib
install\include 是你所开发程序需要引入opencv的头文件目录。
install\x86\vc14\lib 是你所开发程序需要引入的opencv的lib库文件目录。
install\x86\vc14\bin 是你所开发程序依赖的opencv的dll文件目录。