网上已经有很多关于OpenCV的编译了 ,官网上直接exe下载安装的OpenCV包从3.0版本之后就不含Contrib了,基本使用是够的,但是很多时候我们需要使用GPU编程,并且期望使用一些SIFT等这些包含在Contrib中的库,我自己配置成功了OpenCV3.4.1+Contrib3.4.1+Cuda10.1+VS2015,虽然有很多介绍步骤的,但是每个人都还是或多或少遇到自己的问题,所以在这里把我的配置过程记录一下,希望能对各位道友有一些帮助。
记录过程会按照步骤来讲,其中每一步可能遇到的问题会以备注的形式记录在下面。
第一步:下载对应的安装包
opencv https://github.com/opencv/opencv/releases
opencv_contrib https://github.com/opencv/opencv_contrib/releases
默认大家都已经装好Cuda了,这个直接官网免费下载对应的版本就可以了。
下载之后直接解压缩就好了,建议放在同一个文件夹里,可以再新建一个CmakeProject文件夹,用于存放生成的工程。
注意:版本要一致。
第二步:使用Cmake进行编译
Cmake: https://cmake.org/download/
下载后直接安装就好了,在bin文件夹里可以找到cmake-gui.exe点击运行就可以了。
(1) 路径设置,如下图所示:
(2) 点击Configure,选择VS版本和类型,我的是VS2015,可以自己选择,然后平台x64不要忘了选,点击Finish之后就会自动配置了。
注意:这个配置过程我遇到了一个很头疼的问题:部分文件下载失败,显示红色Warning。我们这里还没有添加contrib库,那么下载失败的一般就是ffmpeg_version.cmake, opencv_ffmpeg_64.dll, opencv_ffmpeg.dll, ippicv_2017u3_win_intel64_general_20170822.zip 这几个文件,如果等会儿我们加入Contrib编译路径,下载不到的文件会更多。其他博客也提到了这个问题,给出的方案一般是去CmakeProject文件夹里面找到CMakeDownloadLog.txt文件,然后找到其中的链接自己下载之后再放到对应的缓存文件夹里面,如下图所示:
但是配置的时候下载失败,我们自己找链接还是会下载失败的,得到的错误是找不到 raw.githubusercontent.com 的服务器 DNS 地址,我自己也尝试了使用VPN之类的方法但是都不行。
终于,我找到了靠谱的解决方案:
就是这句话199.232.4.133 raw.githubusercontent.com,加上去之后再回来重新配置,就可以下载啦!
(3)添加Contrib和Cuda的选项进行第二次配置。
a:Contrib路径添加,如图所示:
b:勾选WITH_CUDA选项 、WITH_TBB选项以及Build_opencv_world选项。
然后再点击Configurate选项,进行配置,配置成功后截图中的红色区域就全部变成白色了。
(4) 点击Generate 选项,生成工程。
第三步:用VS2015打开工程,生成对应的库
(1) 打开OpenCV.sln工程
(2) 选择Debug\Release和X64\X86平台,我这里是Debug, X64;
(3) 右键Install,选择生成,开始编译就好了。
注意这个过程可能时间比较长,请耐心等待,编译完成之后在目标文件夹下就可以找到Install文件夹了,该文件夹里面有include,lib和dll文件,大家进行路径配置就可以正常使用啦!