cmake+vs2017+opencv3.3.0编译contrib模块详解
来源:互联网 发布:怎样避免淘宝找同款 编辑:程序博客网 时间:2024/06/05 19:36
最近在做opencv下的人脸识别程序,要用到opencv中的FaceRecognizer类,然而这个类在需要opencv_contrib库,官方并没有将OpenCV_contrib库放置在官网上,而是将其放在了GitHub上,所以我们需要自行编译OpenCV_contrib库。
一、准备工具。
编译OpenCV_contrib库需要自行安装对应工具cmake+opencv+opencv_contrib+vs,我所安装的工具如下:
cmake下载地址:https://cmake.org/files/v3.9/cmake-3.9.2-win64-x64.msi
opencv3.3.0: https://ncu.dl.sourceforge.net/project/opencvlibrary/opencvwin/3.3.0/opencv-3.3.0-vc14.exe
opencv_contrib3.3.0: https://codeload.github.com/opencv/opencv_contrib/zip/3.3.0
vs2017: 这里可以自行选择vs版本。
还有opencv和contrib库最好用同一版本的,不然容易出错。
二、cmake编译。
cmake下载后解压运行安装,opencv3.3.0下载后运行安装完后,在opencv文件夹下新建文件夹,随便取名,比如我的是
接下来打开cmake,*/cmake/bin/cmake-gui.exe。
第一个路径选择opencv3.3.0的源代码*/opencv/sourse,第二个路径是新建文件夹*/opencv/*。点击Generate。
等待...
此处极大可能因为一些不可知原因和网络波动出现ffmpeg文件无法下载,具体指opencv_ffmpeg.dll、opencv_ffmpeg_64.dll和ffmpeg_version.cmake这三个文件下载失败。但是编译结果还是Configure down Generte down。此时我们就需要重新下载ffmpeg文件,否则后面的解决方案和安装库会报错。
只要有此类型的提示,就说明下载失败,打开错误中说明的CMakeDownloadLog.txt文件,找到你下载错误文件的地方,里面有文件的下载地址,然后复制地址自己下载,安装到.txt文件上说明要求安装到的目录,安装完,opencv源代码即可编译完毕。
这个是我opencv_ffmpeg_64.dll文件下载的地址,最好使用你自己.txt文件中标注的地址。https://raw.githubusercontent.com/opencv/opencv_3rdparty/a86e53eb35737a50e5100e26af3aa1d29e810890/ffmpeg/opencv_ffmpeg_64.dll
一般都是下载好后安装到*/opencv/new_build/3rdparty/ffmpeg中,
CMakeDownloadLog.txt文件还标注了*/opencv/sourse/.cache/ffmpeg文件夹,我的文件夹中对应文件只有几K,表明里面内容丢失了,于是我将对应的内容添入对应文件中,至此完成*/opencv/sourse的编译。
接下来编译contrib模块。在search中找到OPENCV_EXTRA_MODULES_PATH,修改路径*/opencv_contrib3.3.0/modules,点击Generte。
等待...
果不其然编译成功显示Configure down Generate down,然而还是丢失了三个文件:
另外两个错误没截图,但是我有提示:
ippicv无法下载
https://raw.githubusercontent.com/opencv/opencv_3rdparty/a62e20676a60ee0ad6581e217fe7e4bada3b95db/ippicv/ippicv_2017u2_win_intel64_20170418.zip
boostdesc_binboost_128.i下载失败
https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_binboost_128.i
boostdesc_lbgm.i下载失败
https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_lbgm.i
根据错误提示中的下载路径下载文件,将内容copy到目标文件路径中,错误改完后编译完成。
注意要在对应的contrib目录下粘贴对应的文件,否则生成解决方案会失败对应的几个项目。如上图
三、vs2017编译
打开*/opencv/new_build/,点击opencv.sln文件,进入vs2017.
点击解决方案,重新生成解决方案,然后就是等待...
生成解决方案可能又会因为一些不可知因素导致有几个动态链接库生成失败,不过影响不是很大,除非失败的是你要用到的库,那就没办法只能重来了。
生成解决方案后就是安装了。找到CMakeTargets下的INSTALL,右键INSTALL
ok,你的new_build文件夹下多了一个install文件夹。这个文件夹就是我们要的,其他所有的都可以删掉了。
四、环境配置。
1、打开系统环境变量,新建*/opencv/new_build/install/x64/vc15/bin
2、配置项目属性,
包含目录:*opencv/new_build/install/include
*opencv/new_build/install/include/opencv
*opencv/new_build/install/include/opencv2
库目录: *opencv/new_build/install/include/x64/vc15/lib
附加依赖项:按照你自己生成好了的库来添加附加依赖项。
复制动态库至系统目录下:*opencv/new_build/install/include/x64/vc15/bin里面的.dll文件。
复制至 C:\Windows\System32 和 C:\Windows\SysWOW64 目录下。
至此,opencv_with_contrib3.3.0配置完成。
PS:如果有同学觉得太麻烦,也可以到我的百度网盘上获取编译成功的opencv_with_contrib库。
链接:http://pan.baidu.com/s/1o8caDei 密码:1xeu
参考文献:http://blog.csdn.net/liu798675179/article/details/51259505
- cmake+vs2017+opencv3.3.0编译contrib模块详解
- OpenCV3.3+contrib+VS2017+CMake+Win10
- OpenCV contrib 3.2.0扩展模块添加与编译(VS2017+OpenCV3.2.0)详解与排坑
- opencv3.1.0+contrib模块编译总结
- ##Win7下Cmake编译配置opencv3.3+contrib+cuda7.5
- 关于CMake编译Opencv3.2+contrib的错误总结
- OpenCV3.1.0 + contrib编译
- VS2013+opencv3.3+contrib模块win7 *32位编译
- cmake编译opencv3:opencv3.3.1+contrib+cuda8.0+vs2013(2015)+cmake3.10.1
- Window7 下编译Opencv 3.3+contrib模块+Cmake+VS2015
- Visual Studio 2015一分钟配置opencv及CMake编译OpenCV3.1(含opencv-contrib)
- cmake+OPENCV3.3 VS2017 安装笔记
- VS2017+Opencv3.3+Opencv_contribute编译
- opencv3.3.0+vs2015+cmake编译opencv x86
- cmake编译opencv3.0
- opencv3.0中contrib模块的添加
- OpenCV3.1.0安装contrib模块的方法
- opencv3.0中contrib模块的添加
- 程序员210行纯css代码制作日出动画特效
- bzoj1602 [Usaco2008 Oct]牧场行走
- 源码安装 lnmp
- python3 urllib 爬虫乱码问题解决
- kendoui中的TreeView学习使用
- cmake+vs2017+opencv3.3.0编译contrib模块详解
- 使用RecyclerView结合jiaozivideoplayer去加载不同类型的布局
- windows安装jdk
- 篡改Java final参数
- hadoop 命令执行报错解决
- Codeforces Round #444(Div.2) B. Cubes for Masha
- Spark Streaming开发入门——WordCount(Java&Scala)
- linux – signal 信号列表
- 笔记31 | 归纳总结Android的点击事件