一个五一假期的成果:整合一篇OpenCV4.1.0+opencv_contrib4.10编译步骤文档。
OpenCV官方提供了windows可安装的版本,已经有编译好的dll,不过不包括opencv_contrib。如果想应用这部分算法,则需要自己编译opencv,将opencv_contrib编译到opencv中
所需材料:
- opencv源代码 https://github.com/opencv/opencv/
- opencv_contrib源代码 https://github.com/opencv/opencv_contrib
- CMake
- Visual Studio
- 一个通畅的网络(手动标红)
1.下载opencv源码
源码地址:https://github.com/opencv/opencv/
2.下载opencv_contrib源码
源码地址:https://github.com/opencv/opencv_contrib
下载方法参考opencv的来就行。
重点来了:防止出现不可预估的错误,我们选择下载与opencv一样的版本(opencv4.1.0+opencv_contrib4.1.0)
好,下载解压之后我的长这样(这一点没有必要完全一致,随意就行,MyBuild文件夹是自己新建的)
3.安装CMake
下载地址:https://cmake.org/download/ (自选版本地址:https://cmake.org/files/)
根据平台不同选择和自己电脑匹配的包,装上能用就行(建议安装非C盘)
4.用CMake生成vs工程
第一次点击Configure,弹出对话框,选择编译工程的平台。
Finish,开始配置
敲黑板地方来了,这里位done并不代表你已经完成一步了(往上翻翻你会发现惊喜的,很多红色错误)
应该是因为下载不全,可通过查看文件CMakeDownloadLog.txt手动下载(这里你得找个可以下载的网络~只可意会不可言传)
操作方法:https://www.cnblogs.com/huluwa508/p/10142718.html(这位大佬就说的很清楚,跟着步骤一顿操作)
操作完后,这里需要配置几个选项
- 勾选BUILD_opencv_world,这样在调用dll时,只调用这一个就行了,不用根据功能选择了,省了些麻烦
- 在OPENCV_EXTRA_MODULES_PATH选项中,填写opencv_contrib解压目录下,modules文件夹的路径,这样就把opencv_contrib编译进去了
- 如果需要使用SIFT::create,将OPENCV_ENABLE_NONFREE勾上
第二次点击Configure,你会发现还会出现一堆红色错误,再根据大佬的教导一顿操作。
第三次点击Configure,(如果你没有配置错误的话就不会出现红色错误了)
if 有 :
继续手动下载操作
else
点击 Generate
长这样之后点击 Open Project 打开vs工程
5.使用vs编译源码
- 选择Debug x64
- 点击生译成->生成解决方案开始编,过程比较漫长
- 没有错误,然后右击INSTALL,点击“仅用于项目->仅生成INSTALL”
- 将编译选项调整为Release x64,重复2,3。此时在“目的路径”的install目录下,生成了调用dll的全部内容
6.配置vs环境
项目-》属性-》vc++目录-》包含目录
项目-》属性-》vc++目录-》库目录
链接器(编译工程如果找不到这俩货的话,将这俩文件复制到C:\Windows\System32)
======
阔以了,大功告成了,开始你的表演吧。。。
参考链接: