环境要求:VistualStudio2019 17 15也可以,尽量用新版本,opencv4需要C++11支持
cmake3.15.5 尽量新版本
一、准备工作
安装软件
上面那些都装好,环境变量配好,这类教程很多
下载源码
opencv https://github.com/opencv/opencv/releases/tag/4.1.0
opencv_contrib https://github.com/opencv/opencv_contrib/releases/tag/4.1.0
下载opencv4.10源码 opencv_contrib4.10源码,解压到文件夹source下,新建文件夹build用于存放生成的VS解决方案和VS编译出来的install文件
opencv4.10---build
---source ---opencv
---opencv_contrib
下载第三方组件
在使用cmake的时候,如果你没有梯子,很多文件是下不下来的,因此我们需要提前下好放在\source\opencv\.cache下
https://github.com/opencv/opencv_3rdparty在branch下找需要下的组件
需要关注的组件:opencv中的ffmpeg,ippicv contrib中的face,xfeature2d ,请查看它们的cmake文件
ffmpeg
打开\source\opencv\3rdparty\ffmpeg\ffmpeg.cmake 可以看到下面的代码,根据代码去下载对应的文件,其它的以此类推,后面仅给出文件名,其它版本的opencv也按这个思路走,前两个是本体的,后两个是扩展包里的。
# Binaries branch name: ffmpeg/master_20181106
...
set(name_BIN32 "opencv_ffmpeg.dll")
set(name_BIN64 "opencv_ffmpeg_64.dll")
set(name_CMAKE "ffmpeg_version.cmake")
...
https://github.com/opencv/opencv_3rdparty/tree/ffmpeg/master_20181106/ffmpeg
- opencv_ffmpeg.dll
- opencv_ffmpeg_64.dll
- ffmpeg_version.cmake
ippicv
https://github.com/opencv/opencv_3rdparty/tree/ippicv/master_20180723
- ippicv_2019_win_intel64_20180723_general.zip
contrib_face_alignment
https://github.com/opencv/opencv_3rdparty/tree/contrib_face_alignment_20170818
- face_landmark_model.dat
contrib_xfeatures2d_boostdesc
https://github.com/opencv/opencv_3rdparty/tree/contrib_xfeatures2d_boostdesc_20161012
- boostdesc_bgm.i
- boostdesc_bgm_bi.i
- boostdesc_bgm_hd.i
- boostdesc_binboost_064.i
- boostdesc_binboost_128.i
- boostdesc_binboost_256.i
- boostdesc_lbgm.i
contrib_xfeatures2d_vgg
https://github.com/opencv/opencv_3rdparty/tree/contrib_xfeatures2d_vgg_20160317
- vgg_generated_120.i
- vgg_generated_80.i
- vgg_generated_64.i
- vgg_generated_48.i
二、使用cmake进行build
打开cmake,添加source路径和要存放的build路径,之后点configure,会有红色报警,python3的报警不用理,其它有4个警告是ippicv,ffmpeg相关文件无法下载。完成后会看到一片红,需要你选勾进行配置。
然后到source\.cache下用之前下载的文件把那些0kb的文件替换掉,替换的时候保留下载生成的MD5。
然后开始第一次配置
- OPENCV_EXTRA_MODULES_PATH填contrib\modules的路径
点configure后,等待完成,你会发现又失败了很多文件,都替换掉,然后进行第二次配置
- 打勾的:OPENCV_ENABLE_NONFREE
打勾完了,点configure
三、VS编译
点generate,完成后打开生成的opencv.sln,生成->批生成->ALL-BUILD,INSTALL打勾->点击生成按钮,之后可以在build\install路径下找到生成的库文件,其它的所有东西就都可以删了。