Windows环境下vs2015+opencv3.1+contrib库安装配置

时间:2022-05-07 18:25:24

最近几天在安装opencv,也看了网上的一些帖子,结合自己遇到的一些问题写了点内容。

准备:

1. opencv最新的版本是3.10,可以到官网下载。官网下载提取后会得到两个文件夹:build和sources。我们需要用到的是sources,用CMake重新编译sources里的内容,再添加contrib库。build里的内容是官网已经编译好的,,有其他博客是讲利用build安装的,而这里我们并未用到。opencv也可从GitHub下载https://github.com/opencv/opencv,这是源码,相当于前述的sources文件夹。

2. CMake是用来编译源码的,官网下载https://cmake.org/。我使用的是。使用CMake除了要opencv编译源码,还有一个原因是:opencv3.1版本只能调试x64,不能调试x86。也就是说要在32位环境下调试,需要自己用CMake重新编译源码。

3. contrib库。官网上的opencv3.1包含的是稳定的核心库,而一些不稳定的放到了contrib中。GitHub下载https://github.com/opencv/opencv_contrib。解压后,我们用到的是modules文件夹。

4. 看见文件里有解压包时,不要轻易打开。

开始:

1. 文件夹路径,这个随自己设置就行。我将准备内容里的东西都放在了D:\BUILD(以下都用#\代替)里,新建一个myopencv文件夹,来装经CMake编译后的内容,会得到如下图的形式:

2. 在CMake编译opencv源码时,需要下载几个文件,但一般很难下载而导致编译失败,所以直接将其拷到文件夹中。链接: 密码:bt7z。将downloads里三个文件夹中的文件拷贝到#\opencv\sources\3rdparty\ffmpeg下,会得到如下图的形式:

将ippicv_win文件夹拷贝到#\opencv\sources\3rdparty\ippicv下,同时修改downloader.cmake,以记事本形式打开,删掉末尾的“_icv_downloader()”

3. 在#\CMake\bin下打开cmake-gui.exe。在where is the source code输入 #\opencv\sources,在where to build the binaries输入 #\myopencv。会得到如下图的形式:

然后点击Configure,会出现编译器选择对话框

选择Visual Studio 14 2015,这个编译之后opencv3.1就能在x86(win32)环境下调试了。Visual Studio 14 2015 Win64对应的是x64。然后就是等待出现Configuring done,如下图。

然后Search找到OPENCV_EXTRA_MODULES_PATH,输入#\opencv_contrib_master\modules。再次点击Configure,等出现Configuring done后,点击Generate,之后会出现Generating done。到此为止编译的工作已经完成了。

4. 在#\myopencv下找到OpenCV.sln文件,打开它。初始化之后右键 解决方案‘OpenCV’,选择重新生成解决方案。这是在Debug、win32环境下生成的。此过程时间较长。然后找到CMakeTargets文件夹下的INSTALL文件,如下图:

 

右键->仅用于项目->仅生成INSTALL。然后在#\myopencv下就会有一个install文件夹。

5. 配置环境变量。

环境变量设置。变量名:OPENCV;值:#\myopencv\install。

用户变量设置。path下添加:#\myopencv\install\x86\vc14\bin。

6. 打开vs2015,新建一个工程。在属性管理器里找到Microsoft.Cpp.Win32.uesr,如下图:

右键->属性,会弹出对话框。找到通用属性->VC++目录,如下图:

在包含目录里添加:

#\myopencv\install\include

#\myopencv\install\include\opencv

#\myopencv\install\include\opencv2

在库目录里添加:

#\myopencv\install\x86\vc14\lib

找到链接器->输入->附加依赖项,如下图:

在附加依赖项中添加内容(就是#\myopencv\install\x86\vc14\lib文件夹里面的lib文件,对照着添加就行):