opencv带nonfree模块编译

nonfree 相关的算法对应的模块为xfeatures2d ,不在opencv包中,在相对应的 opencv_contrib 附件包中,需要在编译成库时加入

  1. 下载opencv 和对应的opencv_contrib
    OpenCV(https://github.com/opencv/opencv/releases)
    OpenCV_contrib(https://github.com/opencv/opencv_contrib/releases)
  2. CMake编译
    选择对应系统版本和 visual studio 版本,勾选Advanced ,点击Configure,开始工程配置
    BUILD_opencv_wold 勾选上,编译合并生成一个库,默认是一个模块一个lib
    BUILD_opencv_wechat_qrcode 这个模块可以不勾选

配置附件包
OPENCV_EXTRA_MODULES_PATH 参数点选opencv_contrib附件包中modules的路径
opencv带nonfree模块编译_第1张图片
OPENCV_ENABLE_NONFREE 选项勾选
opencv带nonfree模块编译_第2张图片
选择好后点击Configure,再次配置工程

在CMake过程中会下载一些文件,由于下载源的问题,可能会下载失败,到CMakeDownloadLog.txt 文件中查看下载链接及要下载到的位置,将下载链接复制到网页上,手动下载,然后放入到对应的路径中
这种下载失败的文件不影响工程构建,但在进行工程编译时会可能报错,再去找错误原因不太好找,尽量在CMake时提前处理,重复点几次 Configure ,检查在Configure过程中不再报错后,点Generate 生成工程,ippicv_2020_win_intel64_20191018_general.zip 和face_landmark_model.dat 两个下载失败不影响xfeatures2d模块的编译
opencv带nonfree模块编译_第3张图片
编译时碰到的错误:
1.下载opencv_ffmpeg.dll 和 opencv_ffmpeg_64.dll失败,在make输出文件中/3rdparty\ffmpeg/文件下,不处理影响 xfeatures2d 模块库的生成。
2.下载boostdesc_lbgm.i等 以.i 结尾的文件失败,在CMakeDownloadLog.txt 中复制下载链接,可能会直接访问到这个文件的内容,新建一个文本文件,将内容复制到文件文件中,修改文件名和文件后缀为对应的文件,放到在make输出文件中下的 /downloads/xfeatures2d/下,不处理影响 xfeatures2d 模块库的生成。
opencv带nonfree模块编译_第4张图片

opencv带nonfree模块编译_第5张图片
3. 在工程编译时,可能会报 刚才下载的.i文件找不到,在downloads/xfeatures2d/ 下复制到附件库的opencv_contrib-4.5.5\modules\xfeatures2d\samples 下

参考:

https://blog.csdn.net/Owen_Suen/article/details/104444352

你可能感兴趣的:(opencv,visual,studio)