【沉浸式环境搭建】Qt5.11.1+OpenCV(含Contrib)-3.4.3环境搭建

一、安装CMake
Qt5.11.1若要能处理图片和视频,就必须安装OpenCV,而OpenCV中很多的高级功能如人脸识别等都包含在Contrib扩展模块中,需要将Contrib与OpenCV一起联合编译,目前所用这两个版本都是3.4.3版。
1. CMake是用于编译的基本工具,其下载地址为http://cmake.org/download/,下载获得安装包名为cmake-3.12.3-win64-x64.msi,双击启动安装向导。
图1 CMake安装向导单击“Next”按钮,页面中勾选“I accept the terms in the License Agreement”复选框接受许可协议。点击“Next”按钮,选中“Add CMake to the system PATH for all user”单选按钮添加系统路径变量。也可同时勾选“Create CMake Destop Icon”复选框,以便在安装完成后在桌面上创建CMake的快捷方式图标。
2. 添加系统环境变量
进入Windows系统环境变量设置对话框(电脑搜索中搜索系统变量打开点击环境变量进入如图2所示)
图2 Windows系统环境变量设置对话框由于以上刚才的设置,CMake已经自动将其的安装路径“C:\Program Files\CMake\bin”写入环境变量Path中。
在环境变量Path的编辑框中,进一步添加Qt相关的路径变量,即在末尾添加如图 3字符串:
图3这样设置完成后,系统就能同时识别到Qt与CMake两者所在的路径了。
二、下载OpenCV
OpenCV的官方下载地址为http://opencv.org/releases.html,如图4所示,这里我们选择QpenCV3…4.3版,单击“Sources”超链接下载其源代码的压缩包,得到opencv-3.4.3.zip。
图 4三、下载Contrib
OpenCV官方将已经成熟稳定的功能放在opencv包里发布,而在发展中尚未成熟的技术则统一置于Contrib扩展模块中。通常情况下,下载的OpenCV中不包含Contrib扩展库的内容,如果只是进行一般的图片、视频处理,则仅使用OpenCV就足够了,但是OpenCV中默认不包含SIFT、SURF等先进的图像特征检测技术,另外一些高级功能(如人脸识别等),都在Contrib扩展库中,若欲充分发挥OpenCV的强大功能,则必须将其与Contrib扩展库放在一起联合编译使用。
从OpenCV标准Github网站中下载Contrib,地址为http://github.com/opencv。如图 5。
图 5点击图5中的“opencv_contrib”进入Contrib发布页,再单击“releases”超链接进入Contrib下载页,此处注意:选择Contrib扩展库的版本号必须与OpenCV版本保持严格一致,故在此也选择3.4.3版,下载得到opencv_contrib-3.4.3.zip。
图 5四、编译前的准备
我们使用CMake将OpenCV及其对应的Contrib联合编译为可供使用的Qt库,在执行编译之前,还要做如下准备工作。
1. 准备目录
(1)在D盘根目录下新建QpenCV_3.4.3-Source文件夹,将下载得到的OpenCV库的opencv-3.4.3.zip包解压,将得到的所有文件复制到该文件夹。如图6。
在这里插入图片描述
(2)在D盘根目录下新建Contrib_3.4.3-Source文件夹,将下载得到的Contrib扩展库的opencv-contrib-3.4.3.zip包解压,将得到的所有文件复制到该文件夹。如图7。
图 7(3)在D盘根目录下再新建一个OpenCV_3.4.3-Bulid文件夹,用于存放编译后生成的文件和库。
经过以上三步,基本目录结构已经完成。
2. 改动源文件
新版的OpenCV源码与编译器之间存在某些不兼容之处,现在我将这些bug列出来,请逐一对OpenCV库的源文件进行修改,以保证后面编译过程可以顺利进行。
(1)修改D:\OpenCV3.4.3-Source\3rdparty\protobuf\src\google\protobuf\stubs\io_win32.cc文件,将“nullptr”改为“NULL”。如图 8。
图 8
(2)修改D:\OpenCV_3.4.3-Source\modyles\videoio\src\cap_dshow.cpp文件,增加宏定义“#include STRSAFE_NO_DEPRECATE”语句,如图 9。
图 9(3)修改D:\OpenCV_3.4.3-Source\modules\photo\test\test_hdr.cpp文件,增加头文件包含“#include ”和<“#include ”>,如图10。
图 10请严格按照上面提示内容进行修改,否则后面编译就会碰到各种棘手的问题和异常。
3.安装Python
由于OpenCV库的某些功能模块的运行还依赖于Python平台,所以在编译之前还要在自己计算机操作系统中安装Python语言,本次安装的是64位Python官网http://www.python.org/downloads/windows/下载获得安装包python-3.7.0-arm64.exe,双击启动安装向导,单击“Install Now”,按照向导一步步进行安装即可。
五、编译配置。
经过以上各步的准备后,就可以正式开始编译了。
1.设置路径
首先打开CMake工具进行编译的相关配置。双击桌面图标“CMake(cmake-gui)”,启动Cmake,如图 11
图 11点击右上角的"Browse Source…“按钮,选择待编译的源码路径为"D:/OpenCV_3.4.3-Source”(之前准备好的文件夹),单击"Browse Bulid…"按钮,选择编译生成的二进制文件库文件的存放路径为“D:/OpenCV_3.4.3-Bulid”(之前准备的文件夹)。
2.选择编译器
设置好路径后,单击左下角的“Configure”按钮,弹出如图 12的窗口。
图 12选中"Specify native compilers"单击选项按钮表示由用户来指定编译器所对应的C/C++编译程序的路径,这里选择本地编译器,然后从下拉列表中选择C++编译程序的路径为“C:\Qt\Qt5.11.1\Tools\mingw530_32\bin\g++.exe”,如图 13。
图 13单击“Finish”按钮回到CMake主界面,此时主界面上的“Configure”按钮变为“Stop”按钮,右边进度条显示进度,同时下方输出一系列信息,表示编译器正在进行中,随后在主界面中央生成了一系列红色加亮选项条的列表,同时下方信息栏中输出“Configuring done”,表示配置完成。如图 14.
如图 143.设置编译选项
这些红色加亮的选项并非都是必须编译的功能,在上图中要确保选中“WITH_OPENGL”和“WITH_QT”这两个选项,同时要确保取消勾选“WITH_MSMF”编译的选项。
另外,为了将Contrib扩展库与OpenCV无缝整合,还需要设置OpenCV的外接模块路径,在众多的红色加亮选项条中找到一个名为“OPENCV_EXTRA_MODULES_PATH”的选项,设置其值为“D:/Contrib_3.4.3-Source/modules”(之前准备好的文件夹)。
设置完成之后,再次单击“Configure”按钮,界面上的红色加亮的选项全部消失,同时在下方信息栏中输出“Generating done”表示编译选项全部配置完成,完成后点击“Generate”,生成MakeFile文件,才能执行mingW32-make命令。
提示:如果此时CMake主界面上仍然有红色加亮的选项,则再次点击“Configure”按钮重新进行配置,直到所有的红色消失为止。
五、开始编译
打开Windows命令行,进入到事先建好的编译生成的目录D:\OpenCV_3.4.3-Bulid下,输入编译命令 mingw32-make 启动编译过程,这个过程需要等待一个小时左右,为使其工作顺利,避免不必要的打扰,建议开始编译前就关闭360安全等杀毒软件,同时关闭Windows防火墙。
在进度显示100%时,出现“”Built target opencv_version_win32“”信息,表示编译成功。
六、安装OpenCV库
编译完成的OpenCV库必须在安装后才能使用,在命令行中输入:ming32-make install ,这个安装过程就要比编译过程快的多了,此时,打开D:\OpenCV_3.4.3-Bulid 文件夹,可以发现其下已经编译生成了很多文件,如图 15。
图 15其中有一个名为“install”的子目录,进入其中即“D:\OpenCV_3.4.3-Bulid\install\x86\mingw\bin”下的所有文件就是编译安装好的OpenCV库文件,将它们复制到Qt项目的Debug目录下就可以使用了,最终的OpenCV库 如图 16。
图 16

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值