OpenCV3.4.0+contrib在VS2017下编译_win10 64位

一、前言      

        opencv新出了3.4.0版本,最近重装系统,索性就把VS和opencv全换成最新版了,索然不知道新添了啥牛逼功能,不过先把环境配置好再说。

二、操作环境

系统:win10 64位 

其它:VS2017    CMake 3.10.0-rc3

     vs2017和CMake的安装就不说了,网上还是有很多教程的,百度一下都好使。

三、准备文件

OpenCV3.4.0    

OpenCV_contrib

OpenCV源码

下载说明:

3.1 打开链接后出现如下界面:


       这是opencv在GitHub上公开的源码,包括opencv源代码和拓展模块contrib及其之前的各个版本。当然,以后OpenCV升级都可以继续在这里面下载到。所以还是非常有必要收藏一下的。

3.2  单击opencv ,,按下图所示完成opencv3.4.0的下载。




等待下载完成,如此就下载好了opencv3.4.0。

3.3 返回3.1所示界面,单击opencv_contrib,与上述过程类似。


等待下载完成,如此就下载好了contrib模块。注意:contrib模块的版本一定要与opencv的相同,否则会出现错误。本文均选择3.4.0版本。

3.4 下载后,解压到自定义的目录中。


四、编译OpenCV 3.4.0

       写到这突然发现好啰嗦啊,下载说明有点长,不过对新手应该会比较容易理解一点吧。接下来是最最最最主要的部分,楼主在编译时也遇到了很多问题,再编译的过程中也会向大家一一说明,以及如何解决,为后来者提供方便吧。

4.1 打开CMake的gui界面,按下图所示操作:

弹出选择编译器界面,选择Visual Studio 15 2017 win64 ,然后点Finish.



说明:该过程需要联网。但也有可能会因为网络不稳等原因导致出现部分文件无法下载,会以红字的形式报错,此时需要到编译目录中打开CMakeDownloadLog.txt,找到对应的下载链接,自行下载,然后将下载的文件放到相应的目录中。再次点Configure,直到不出现红字错误为止,方可进行下一步。

错误说明:

错误1:无法下载opencv_ffmpeg.dll文件。最长出现的错误就是无法下载opencv_ffmpeg.dll、opencv_ffmpeg_64.dll、ffmpeg_version.cmake三个文件,楼主此次只有opencv_ffmpeg.dll未成功下载,另外两个军成功下载。

FFMPEG: Download: opencv_ffmpeg.dll


=======================================================================

Couldn't download files from the Internet.

Please check the Internet access on this host.

=======================================================================


CMake Warning at cmake/OpenCVDownload.cmake:190 (message):
FFMPEG: Download failed: 6;"Couldn't resolve host name"

For details please refer to the download log file:

F:/opencv3.4.0/newbuild/CMakeDownloadLog.txt

Call Stack (most recent call first):
3rdparty/ffmpeg/ffmpeg.cmake:20 (ocv_download)
cmake/OpenCVFindLibsVideo.cmake:218 (download_win_ffmpeg)
CMakeLists.txt:602 (include)

解决方法: 到编译目录中打开 CMakeDownloadLog.txt ,找到opencv_ffmpeg.dll的下载链接,自行下载,然后将下载的文件拷贝到自定义的编译目录\3rdparty\ffmpeg\路径下。再次点击configure.


错误2:找不到ippicv,报错的图就不往上放了,写博客再次编译的时候竟然没有出现这个错误,楼主表示有时候出现啥错误真的看缘分。

解决方案:到编译目录中打开CMakeDownloadLog.txt,找到ippicv_2017u3_win_intel64_general_20170822.zip的下载链接,自行下载,然后在压缩包名前面加上文件的hash值(文末会上传一个附件,下载后打开,把文件拖入,就能得到文件的hash值。),即压缩包名变为hash值-原名,再将其复制到sources\.cash\ippicv\文件夹下(sources是解压的opencv3.4.0的目录。一般opencv编译时,会查看.cash文件夹下是否有相应的文件,如果有,就用此文件夹下的编译,否则去网上下载。),再次点击configure,直到全部正确。


4.2 完成后,找到OPENCV_EXTRA_MOUDULES_PATH项,如下图所示,设置contrib库的modules目录,然后点configure进行第二次配置。


然后等待generate done即可


4.3 用vs2017生成release 和 debug 动态链接库

上一步结束后,点击cmake中的【Open Project】这会自动打开vs2017 ,也可以到myBuild里找到OpenCV.sln打开。 
打开vs2017后一般可以直接看到【解决方案资源管理器】一栏,没有就点击【视图v】-【解决方案资源管理器p】,可以看到OpenCV的解决方案

解决方案

选择你需要的平台 ,选择release x64。(先选那个都一样)
这里写图片描述  
右键解决方案重新生成 
 
待结束后,点开CmakeTargets–>INSTALL,右键->【仅用于项目】->【仅生成INSTALL】 
生成后把opencv和contrib综合了起来。所以配置的时候只需要用myBuild/install了。
这是myBuild里的文件

由于垃圾文件很多myBuild里可以只留下install,其他都可以删掉
等待完成。同样的过程选择debug x64平台再执行一遍。至此编译结束。
myBuild最后大概有6.5G【有很多垃圾文件】。由于我的程序一般按装到D盘,所以我在D盘新建了一个文件夹,命名为opencv3.4.0
,然后将install中的内容拷贝到此文件夹下,再将opencv3.4.0和contrib的源码拷贝过来(源码拷不拷被都无所谓,不影响使用,
只是以后看源码方便。)。最终形成编译完的文件。


五、配置环境变量


1.      右键电脑【属性】

2.      【高级系统设置】

3.      【环境变量】

4.      【系统变量】【Path

1.      在变量值后加 
编译目录\install\x64\vc15\bin 的完整路径
注意这要改成你的路径,多个变量值以英文分号分开


参考:http://blog.csdn.net/qq_34360180/article/details/66978979

          http://blog.csdn.net/qq_37296487/article/details/77995907

猜你喜欢

转载自blog.csdn.net/pragma_g/article/details/79177495