nonfree 相关的算法对应的模块为xfeatures2d ,不在opencv包中,在相对应的 opencv_contrib 附件包中,需要在编译成库时加入
- 下载opencv 和对应的opencv_contrib
OpenCV(https://github.com/opencv/opencv/releases)
OpenCV_contrib(https://github.com/opencv/opencv_contrib/releases) - CMake编译
选择对应系统版本和 visual studio 版本,勾选Advanced ,点击Configure,开始工程配置
BUILD_opencv_wold 勾选上,编译合并生成一个库,默认是一个模块一个lib
BUILD_opencv_wechat_qrcode 这个模块可以不勾选
配置附件包
OPENCV_EXTRA_MODULES_PATH 参数点选opencv_contrib附件包中modules的路径
OPENCV_ENABLE_NONFREE 选项勾选
选择好后点击Configure,再次配置工程
在CMake过程中会下载一些文件,由于下载源的问题,可能会下载失败,到CMakeDownloadLog.txt 文件中查看下载链接及要下载到的位置,将下载链接复制到网页上,手动下载,然后放入到对应的路径中
这种下载失败的文件不影响工程构建,但在进行工程编译时会可能报错,再去找错误原因不太好找,尽量在CMake时提前处理,重复点几次 Configure ,检查在Configure过程中不再报错后,点Generate 生成工程,ippicv_2020_win_intel64_20191018_general.zip 和face_landmark_model.dat 两个下载失败不影响xfeatures2d模块的编译
编译时碰到的错误:
1.下载opencv_ffmpeg.dll 和 opencv_ffmpeg_64.dll失败,在make输出文件中/3rdparty\ffmpeg/文件下,不处理影响 xfeatures2d 模块库的生成。
2.下载boostdesc_lbgm.i等 以.i 结尾的文件失败,在CMakeDownloadLog.txt 中复制下载链接,可能会直接访问到这个文件的内容,新建一个文本文件,将内容复制到文件文件中,修改文件名和文件后缀为对应的文件,放到在make输出文件中下的 /downloads/xfeatures2d/下,不处理影响 xfeatures2d 模块库的生成。
3. 在工程编译时,可能会报 刚才下载的.i文件找不到,在downloads/xfeatures2d/ 下复制到附件库的opencv_contrib-4.5.5\modules\xfeatures2d\samples 下
参考:
https://blog.csdn.net/Owen_Suen/article/details/104444352