为暑期实践项目的开发环境做准备

次我们暑期实践项目的题目是:通过计算机视觉实现四旋翼无人机的目标检测与自动跟踪。由于要使用 OpenCV,语言最好使用 C++,而 C++ 做用户界面拥有的选择无非是 MFC 或 Qt 或其他库,这之中 MFC 非常难用,就是对 Window API 进行了一层封装,其他第三方库不太常用,了解不多,教程也较少,出于方便的目的,选择了 Qt 开源版,足以满足本次项目要求。

因此,在项目正式开始之前,需要搭建 VS + Qt + OpenCV + FFmpeg 的环境,这里我们选择了 VS 2017,Qt 5.12.4,OpenCV 4.1.0 以及 FFmpeg 4.1.3,同时作为一个团队项目,为了方便需要进行一些相关的约定。

下面正式开始搭建环境。

FFmpeg

下载与解压

FFmpeg 下载地址:https://ffmpeg.zeranoe.com/builds/

选择 4.1.3 版本,Windows 64-bit 的 Shared 以及 Dev下载。Static 内包含的是三个较大的可执行文件,可以直接用控制台使用,Shared 包含了三个较小的执行文件以及他们所依赖的较大的动态链接库,而 Dev 内包含的是未进行编译的头文件以及静态链接库。发开中需要同时用到 .dll 文件以及 .lib 文件和 .h 头文件。

Alt

下载后解压到任意路径即可,如下图所示:

Alt

这里我将 Shared 压缩包内的内容与 Dev 压缩包中的内容放到了一起。

环境变量配置

为了方便团队开发中处理 FFmpeg 依赖的问题,我们这里进行环境变量设置,这样在 VS 中只需要设置宏就可以自动导入路径,同时避免将依赖内容直接加入项目文件中,否则即占用项目空间又使得项目变得没那么简洁。

首先,为系统变量添加两个变量,分别是 include 与 lib,注意名称与团队约定好的名称一致,路径改为自己的 FFmpeg 位置,如下图所示:

接着,在系统变量的 Path 中添加 bin 文件夹的路径,环境变量便配置完成,如下图所示:

OpenCV

下载与安装

OpenCV 下载地址:https://opencv.org/releases/

选择 Windows 下载安装到任意路径即可,本质上是一个压缩包包装成的自解压程序。包含 OpenCV 在 Windows 平台可直接使用的多种语言的库与包含文件,以及用于自己编译的源码。

Alt

环境变量配置

为了方便团队开发中处理 OpenCV 依赖的问题,我们这里进行环境变量设置,这样在 VS 中只需要设置宏就可以自动导入路径,同时避免将依赖内容直接加入项目文件中,否则即占用项目空间又使得项目变得没那么简洁。

首先,为系统变量添加两个变量,分别是 include 与 lib,注意名称与团队约定好的名称一致,路径改为自己的 OpenCV 位置,如下图所示:

Alt

接着,在系统变量的 Path 中添加 bin 文件夹的路径,环境变量便配置完成,如下图所示:

Alt

Qt

下载

Qt 下载地址:https://www.qt.io/download/

选择 Open Source 下载安装即可。

安装

安装过程中一路下一步,遇到需要登陆时选择登录或点 Skip 跳过,选择安装位置时,下方的勾选框是与 Qt Creator 关联常用文件,我们使用 VS 开发因此可以不选。

之后出现如下图所示的模块选择,一般情况只需要勾选如图所示的模块:

Alt

  • 这里简单地介绍一下:
  • MSVC 是 VS 的编译器,MinGW 是 Minimalist GNU for Windows 的缩写,即 windows 平台上的最小GNU编译器的意思,我们由于使用 VS,不需要安装 MinGW
  • Android 与 UWP 开发有需要就勾选上
  • Sources 是 Qt 的源码,非常大,不研究 Qt 源码的也不需要
  • Qt 开头的那一列都是 Qt 的相关组件,如图表、数据可视化等,有需要的就勾选上
  • Deprecated 是以及抛弃的旧组件,不是为了保障以前的兼容性不用选
  • Qt Creator CDB Debugger Support 是 Qt 用于 Debug 的组件,建议勾选

VS 2017

接下来需要配置 VS 2017

安装Qt插件

打开 VS 2017 - 工具 - 扩展与更新 - 联机,搜索 Qt,如下图所示:

Alt

安装插件之后,VS 2017 中会添加 Qt 工具栏,此时还需要设置MSVC2017的地址。点击 Qt VS Tools - Qt Options,添加MSVC地址,如下图所示:

Alt

从VS2017建立Qt项目

打开 VS 2017 - 新建 - 项目,找到 Qt GUI Application,根据需要选择要添加的模块(之后也能手动添加),设置好相关设置,一路下一步即可创建Qt项目。

项目依赖配置

为了使用 OpenCV 与FFmpeg,需要在 调试 - 项目属性 中添加依赖关系。

如下图所示,首先添加 include 与 lib,因为之前我们添加了环境变量,这里可以使用宏的方式添加,如下图所示:

Alt

Alt

这两项都添加完成之后,需要在链接器里添加附加依赖项,根据自己项目的需要将 lib 目录下的 .lib 文件加入依赖,如下图所示:

Alt

需要注意的是,OpenCV用于 Debug 与 Release 版本的 .lib 文件不同,且不能同时添加,Debug 需要添加 opencv_world410d.lib,而 Release 需要添加 opencv_world410.lib

到此为止,使用 VS 2017 创建 Qt 项目,并结合 OpenCV 与 FFmpeg 的环境搭建宣告完成。

Demo 测试

关于 Qt 的使用方式与 OpenCV 的使用方式 以及 FFmpeg 的使用方式此处不做介绍。

可以通过写一个简易的通过 OpenCV 实时捕捉摄像头,并同时做灰度变化的,带有 Qt GUI 界面的 Demo,测试该环境是否搭建成功,如下图所示:

Alt