• QT5.12.1+OpenCV(含Contrib)环境搭建


    Qt  若要能处理图片和视频,则必须安装 OpenCV, OpenCV 中很多高级功能如人脸识别等皆包含在 Contrib 扩展模块中,需要将 Contrib OpenCV 起联合编译。

    一、安装CMake

    1、CMake介绍

    CMake是一个被广泛使用的、开源免费并且完全跨平台的构建工具,可以用简单的语句来描述所有平台的安装(编译过程)。它能够输出各种各样的 makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。

    2、CMake下载

    CMake载地址为: https://cmake.org/download/
    下载最新稳定版即可(Latest Release):
    下载获得的安装包文件名为:
    5c4ec72f085a4b1392f8d6979002920f.png

    3、安装CMake

    下载完成后,单击“Next”按钮,在下图中勾选“I accept the terms in the License
    Agreement”复选框接受许可协议:
    d7767c460f8b4d4a8da53caee6b3d223.png
    选中“Add CMake to the system PATH for all users”单选按钮添加系统路径变量。也可以同时勾选“CreateCMakeDesktopIcon”复选框,以便在安装完成后在桌面上创建CMake的快捷方式图标。
    1c941aa3a9a04de3a5fa86934991f533.png
    接下去的安装过程很简单,跟着向导的指引往下操作即可,直到完成安装为止。

    二、获取OpenCV

    下载OpenCV

    OpenCV 的官方下载地址为 https://opencv.org/releases.html 

    选择release单击 "Sources" 超链接下载其源代码 的压缩包,得到 opencv-4.5.4.zip

    91ce0890df1e4c928dd62360eff80cde.png
    a5a5a7d431ae4f0c903aad081b96c650.png

    三、下载Contrib

    OpenCV 官方将已经稳定成熟的功能放在 opencv 包里发布,而正在发展中尚未成熟的技术则
    统一置于 Contrib 扩展模块中。通常情况下,下载的 OpenCV 中不包含 Contrib 扩展库的内容,如
    果只是进行一般的图片、视频处理,则仅使用 OpenCV 就足够了。但是,OpenCV 中默认不包扩先进的图像特征检测技术,另外一些高级功能(如人脸识别等)都在 Contrib 扩展 库中,若充分发挥 OpenCV 的强大功能,则必须将其与 Contrib 扩展库放在一起联合编译使用。 OpenCV 标准Github 网站下载 Contrib, 地址为 https://github.com/opencv

    1、下载Contrib

    单击图左侧的超链接 "opencv contrib" 进入 Contrib 发布页
    1a97ee58cca54ea6acb6f39646cc85ea.png
    再单击 "releases" 超链接进入 Contrib 下载页,因选择 Contrib 扩展库的版本必须与 OpenCV 的版本严 格一致,故本文选择 4.5.4 版,下载得到 opencv_ contrib-4.5.4.zip
    根据下图操作选择版本

    1.1选择分支

    1f484d5a13624e84a573318e090e857c.png

    1.2选择版本

    a969ece58cfe4894816efd599806788c.png

     1.3下载

    0bd98e618c524091bdbcd90650df62a3.png

     四、安装 Python

    由于 OpenCV 库的某些功能模块的运行还依赖千 Python 平台,故编译前还要在自己的计算
    机操作系统中安装 Python 语言,本文安装的是 64 Python 3.10.5

    1、下载

    Python 官网 https: /www. python.org/downloads/windows/下载获得安装包 python- 3.10.5
    选择稳定版本下载
    4016ae7672d141afbae0e5675bb41b82.png

    2、安装

    双击启动安装向导,单击 "Install Now" 按照向导的指引 下操作,在下载完成后我们打开下载文件

    注意:存储的路径必须都是英文不能有中文 

    558e7134eaad4378abac6e1725fc35e3.png

    a1c204424b1e467b8e7d8279fd3f1814.png

       621942f169f841c9b8c08e7e9f5668cd.png 然后python就安装好啦

    a4158d97c6aa46eab3960d6111076e73.png

    检查python是否安装成功

    按下 Win+R 打开Windows系统的“运行”窗口 并输入cmd,输入python,可以查看是否安装成功当出现Python 3.10.5 时就说明python安装成功 
    3daaef41169f44cebd3432c5b8c8b4e8.png

    五、添加环境变量

    1、添加CMake环境变量

    进入 Windows 系统环境变量设置对话框,可以看到,由于 二中 的设置, CMake 已经自动将其安装路径 "C:\Program Files\CMake\bin" 写入环境变量 Path 中。如果没有写入需要手动写入

    1.1新建环境变量路径

    1081b05623f34bf49dd7067d2414a0a4.png

    1.2将安装路径下的bin添加到环境变量路径

    b0f657272cee4b11a972d1798629c8fc.png

    2、添加QT环境变量

    以同样的方法添加

    8e8d8436d5d44802b0fef13ca4410fd1.png

    3、添加python环境变量

    查看是否有python环境变量没有的话手动添加(python环境有时重启才会生效)

    bd98e82b0c6540b5ab4634a38941be22.png

    六、编译QT库

    我们使用 CMake OpenCV 及其对应的 Contrib 联合编译为可供使用的 Qt 库,在执行编译之前,还要做如下准备工作

    1. 准备目录

    (1) 新建 opencv4.5.4文件夹,将下载得到的 OpenCV 库的opencv-4.5.4.zip 包解压,将得到的所有文件复制到该文件夹。
    (2) 新建contrib4.5.1 文件夹,将下载得到的 Contrib 扩展库的opencv_contrib-4.5.1 .zip 包解压,将得到的所有文件复制到该文件夹。
    (3) 新建一个 OpenCV4.5.4Build 文件夹,用于存放编译后生成的文件和库。经过以上 个步骤得到的目录结构

    2.编译配置

    1. 设置路径

    首先打开 CMake 工具进行编译相关的配置。
    单机右上角 "Browse Source …”按钮,选择OpenCV 库源代码的文件夹
    单击 "Browse Build…”按钮,选择编译生成二进制库文件的存放路径为 "OpenCV4.5.4Build "
    76b8c0645ba9468e8e9ef408ca4e190e.png

     2、选择编译器

    设置好路径后,单击左下角的 "Configure "按钮,选中 "Specify native compilers" 单选按钮表示由用户来指定本地编译器,然后从下拉列表中选择所用的编译器为 Qt 自带的 "MinGW Makefiles"

    7f4339a876674e71be8bb29ad0144e94.png

    3、指定编译器路径

    单击 "Next" 按钮,在弹出的如图的界面上要求用户指定编译器所对应的C/C++ 编译程序路径,这里选择C编译程序的路径为 "E:/WINQT/Tools/mingw730_64/bin/gcc.exe": 选择编译程序的路径为 "E:/WINQT/Tools/mingw730_64/bin/g++.exe"

    e223cc2814f84dc4901679addc9c33ac.png

     4、开始编译

    单击 "Finish" 按钮回到 CMake 主界面,此时主界面上的 "Configure" 按钮变为 "Stop" 按钮,右边进度条显示进度,同时下方输出一系列信息,表示编译器配置正在进行中

     随后,在主界面中央生成了一系列红色加亮选项条的列表,同时下方信息栏中输出 "Configuring done", 表示编译器配置完成

    ff08d8a4e80e42ef880f42aeecc7d55a.png

     5. 设置编译选项

    这些红色加亮的选项并非都是必须编译的功能,要确保选中"WITH_OPENGL" ,"WITH_QT" 这两个编译选项,同时,要确保取消勾选 "WITH_MSMF" 编译选项
    6b48685d1ac24272bf77e7854e3e5e15.png
    4cab16e727fc45dca2ebce4931163db2.png
    另外,为了将 Contrib 扩展库与 OpenCV 无缝整合,还需要设置 OpenCV 的外接模块路径, 从众多的选项条中找到一个名为 "OPENCV_ EXTRA_ MODULES_ PATH" 的选项,设置其值为
    "E:\1WT\10.HaiRongQT\Bbuild\contrib4.5.4\opencv_contrib-4.5.4\modules"错误的格式
    "E:/1WT/10.HaiRongQT/Bbuild/contrib4.5.4/opencv_contrib-4.5.4/modules"正确的格式
    (即之前在准备时存放 Contrib源文件目录下的 modules 子目录)。
    4aaf457ffa5442629858ea8a801b0afe.png
    设置完成后,再次单击 "Configure" 按钮,界面上的红色加亮的选项全部消失,同时在下
    方信息栏中输出 "Generating done" 表示编译选项全部配置完成
    红色全部消失
    466278a119e44f6fb00d71de1d508665.png

     执行Generating

    c8001cbf41834917b5abcad6c62bc929.png

     6、开始编译

    所有的设置项都完成后,就可以开始编译了。打开 Windows 命令行,进入到事先建好的编
    译生成目标目录 D:\OpenCV4.5.4Build 下,输入编译命令:mingw32-make
    可以使用多线程执行这条语句似的编译更快

    5f2cebd658bf44928fe8bc3c02f6d02b.png

     在进度显示 100% 时,出现 "Built target opencv _version_ win32" 信息,表示编译成功

    编译过程中出现的问题

    错误1:

    1、错因

    在编译OpenCV 源码过程中,需要下载第三方依赖包,由于种种原因,无法下载,导致编译中止
    错误类型如下:

    1. FFMPEG: Download: opencv_videoio_ffmpeg.dll Try 1 failed CMake Warning
    2. at cmake/OpenCVDownload.cmake:202 (message): FFMPEG: Download
    3. failed: 28;“Timeout was reached”
    4. FFMPEG: Download: opencv_videoio_ffmpeg_64.dll Try 1 failed CMake
    5. Warning at cmake/OpenCVDownload.cmake:202 (message): FFMPEG:
    6. Download failed: 35;“SSL connect error”

    以上错误:opencv_videoio_ffmpeg.dll 和 opencv_videoio_ffmpeg_64.dll下载失败导致。


    2、解决方法

    从其他地方下载以上两个文件,放在opencv\sources.cache\ffmpeg目录中

    只需要下载对应的opencv_videoio_ffmpeg.dll 和 opencv_videoio_ffmpeg_64.dll即可,文件名前面的16进制前缀,为对应文件的md5值。

    2.1获取下载链接和MD5值

    打开选择编译生成二进制库文件的存放路径为 "OpenCV4.5.4Build下的CMakeDownloadLog.txt

    里面有下载地址和MD5值

    f6e15babaa1649ed8830b0be0dbae955.png

    2.2拼接MD5和opencv_videoio_ffmpeg.dll 、opencv_videoio_ffmpeg_64.dll并将文件复制到下面目录

    54cff8453802486d8b98362e32bea841.png

  • 相关阅读:
    《二叉树刷题计划》——相同的树、对称二叉树、另一棵树的子树
    Qt中的QPainter绘图操作介绍
    81.C++ STL map/ multimap容器
    MyBatis-Plus找不到Mapper.xml文件的解决方法
    申报消防设施设计乙级资质关于财务审计报告的要求
    网安学习笔记-day14,nmap和hydra常用命令
    【学习笔记】《模式识别》绪论
    关于电影的HTML网页设计-威海影视网站首页-电影主题HTM5网页设计作业成品
    洛谷2020、2021、2022 CSP-J1 CSP-S1 第1轮 初赛模拟
    【机器学习基础】决策树(Decision Tree)
  • 原文地址:https://blog.csdn.net/qq_43445867/article/details/126097023