一. 资源及环境准备
1. 安装好vs2015.
2.下载opencv3.0,opencv_contrib3.0,以及cmake-3.10.0-win64-x64.msi
3.解压安装opencv
4.解压安装cmake
5.在源码编译过程中,需要联外网下载文件,速度慢,可以先下载好备用。尤其是在网络差的情况下,一步一个坑,动不动就报错。此处,把所有遇到的需要下载的资源整合起来放百度云盘,帮助别的小伙伴避免跟我一样掉坑里挣扎。
ffmpeg资源:
链接: 链接: https://pan.baidu.com/s/1N_3pDE90ucYlrEWCBbrisg 提取码: naq6
ippicv资源:
链接: 链接: https://pan.baidu.com/s/1o7LCHM4YvAvVCiN-RYMAww 提取码: yfdw
protobuf-cpp-3.1.0.tar.gz资源
链接: https://pan.baidu.com/s/1fHTmlKTzm-Dbvox_WcuD1w 提取码: tti2
VGG及boostdesc等资源:
链接: https://pan.baidu.com/s/1UtJaYCZf8AQQEMiQLGbdNw 提取码: w64w
二、Cmake编译
1. 设置存放编译后文件的路径
并选择对应的VS编译器。
2. 点击Configure,下载opencv_ffmpeg.dll报错,手动放入下载的dll文件
再点击Configure,下载ippicv_windows_20151201.zip报错,手动放入下载的zip文件
再次点击Configure,显示Configure done。
3. 点击Generate,Downloading protobuf-cpp-3.1.0.tar.gz报错,手动下载放入该gz文件,并放入E:\MyOpenCV\opencv_contrib\modules\dnn\.download\
bd5e3eed635a8d32e2b99658633815ef\v3.1.0下
4. 再次点击Generate,Downloading vgg_generated_48.i报错。手动下载该文件,并放入如下路径
5.再次Generate,Downloading vgg_generated_64.i报错,Downloading vgg_generated_80.i报错,Downloading vgg_generated_120.i报错。手动下载这3个文件,并放入上图路径。
6.再次点击Genreate,下载boostdesc_bgm.i报错,手动放下放入上图路径下。
再次点击Generate,依旧报错,可能下载的版本不一样。重新寻找资源。
重新找对应版本的资源文件,放到opencv_contrib\modules\xfeatures2d\src下面,此问题解决。
下载boostdesc_bgm_bi.i、boostdesc_bgm_hd.i、boostdesc_binboost_064.i、boostdesc_binboost_128.i、boostdesc_binboost_256.i、boostdesc_lbgm.i报错,同样解决办法。
7.再次点击Generate,完成Cmake配置。
此时文件内容多了linux-install和win-install。
三、VS编译
1.在存放new_build文件下,找到VS解决方案,打开。
2.先在Debug|Win32下,选中INSTAIL->右键->生成 解决方案。(过程稍久)
Debug下编译完成。
此时,已经新建Install文件夹。
Debug版本下,生成的dll存放在如下路径:
E:\MyOpenCV\new_build\bin\Debug
Debug版本下,生成的lib存放在如下路径:
E:\MyOpenCV\new_build\lib\Debug
3.再在Release|Win32下,选中INSTAIL->右键->重新生成解决方案。与Debug|Win32下类似,在重新生成解决方案完成后,Release版本下,生成的dll存放在如下路径:E:\MyOpenCV\new_build\bin\Release
Release版本下,生成的lib存放在如下路径:
E:\MyOpenCV\new_build\lib\Release
此时,opencv+opencv_contrib已经完成源码编译(opencv source版)。
后续添加环境变量,在VS项目属性管理器中完成相关配置即可,与opencv Rease版配置类似。
详细过程可参考《opencv3.2.0源码编译版+vs2015环境配置及测试》
四、参考资料
https://blog.csdn.net/childbor/article/details/82984853?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task