Qt之CMake和MinGW编译OpenCV独立模块opencv_contrib

#相关内容

  • Qt之CMake和MinGW编译OpenCV
    #opencv_contrib简介
    OpenCV3.0专注于模块化,并进一步分为官方OpenCV主库和由用户维护的独立模块opencv_contrib。opencv_contrib库为非稳定版本,非OpenCV官方发布和维护,可以看做是对opencv的扩展,包含了众多具有实用价值的模块,诸如人脸识别、深度神经网络、目标跟踪等等,详细模块如下图:

Qt之CMake和MinGW编译OpenCV独立模块opencv_contrib

接口文档:https://docs.opencv.org/3.4/index.html
#下载地址
https://github.com/opencv/opencv_contrib

Qt之CMake和MinGW编译OpenCV独立模块opencv_contrib

注意:要下载与OpenCV主库一致的版本
Qt之CMake和MinGW编译OpenCV独立模块opencv_contrib
#opencv_contrib编译步骤

opencv_contrib库的编译步骤与OpenCV库的编译步骤基本一致,有了前面OpenCV库成功编译的经验,这里就顺利多了。

在opencv安装的同级目录下创建文件夹buildOpencvContrib,用来存放构建文件及生成的opencv_contrib库文件。

Qt之CMake和MinGW编译OpenCV独立模块opencv_contrib
##编译前配置
1、打开 cmake-gui,设置源码和生成路径:

  • Where is the source code :H:\opencv3.4.3\opencv\sources (opencv安装目录)

  • Where to build the binaries:H:\opencv3.4.3\buildOpencvContrib (新建的文件目录)
    然后点击Configure,在弹框里选择编译器,点击Next,如下图:

Qt之CMake和MinGW编译OpenCV独立模块opencv_contrib

2、在弹窗里设置编译器目录,然后点击Finish

  • D:\Qt\Qt5.9.4\Tools\mingw530_32\bin\gcc.exe

  • D:\Qt\Qt5.9.4\Tools\mingw530_32\bin\g++.exe
    Qt之CMake和MinGW编译OpenCV独立模块opencv_contrib

3、点击Finish之后需要等待一段时间,等到进度条读完之后,开始配置:

  • 勾选 WITH_QT

  • 勾选 WITH_OPENGL

Qt之CMake和MinGW编译OpenCV独立模块opencv_contrib

勾选之后点击上图的Configure,等到进度条读完之后,继续配置,因为此前编译过OpenCV,所以这里的DIR相关路径无需再设置,点击右上角的Add Entry,然后在弹窗中输入:

  • QT_MAKE_EXECUTABLE

  • FILEPATH

  • D:\Qt\Qt5.9.4\5.9.4\mingw53_32\bin\qmake.exe

Qt之CMake和MinGW编译OpenCV独立模块opencv_contrib

点击OK之后,继续配置,找到OPENCV_EXTRA_MODULES_PATH选项,添加opencv_contrib包的modules目录:

Qt之CMake和MinGW编译OpenCV独立模块opencv_contrib

然后点击Configure- Generate,等待进度条读完之后,配置完成。

##编译命令
在构建目录buildOpencvContrib下按shift+右键,打开终端,然后执行编译命令:

mingw32-make

等到编译完成(100%)之后执行安装命令,会在相关目录下生成库文件:

mingw32-make install

##编译错误
编译过程中可能会遇到下面的错误:

  • C++11错误

Qt之CMake和MinGW编译OpenCV独立模块opencv_contrib

解决:打开 cmake-gui,勾选 ENABLE_CXX11,然后重新Configure-Generate-mingw32-make

  • cap_msmf.cpp文件出错

Qt之CMake和MinGW编译OpenCV独立模块opencv_contrib

解决:打开 cmake-gui ,不勾选WITH_MSMF,然后重新Configure-Generate-mingw32-make

##生成opencv_contrib库
编译安装完成后,生成的库在H:\opencv3.4.3\buildOpencvContrib\install\x86\mingw\bin目录下 :

Qt之CMake和MinGW编译OpenCV独立模块opencv_contrib