《Qt5.9.7 OpenCV 人脸识别》之开发环境搭建(OpenCV库编译)

1 所需环境

此项目基于Windows 10 64位系统PC机。为避免直接下载OpenCV已编译好的库加入到Qt应用程序编译不过,这里采用CMake+Qt MinGw对OpenCV库源码进行编译,生成静态库和动态库,实际开发过程中将生成的静态库和OpenCV头文件包含到项目工程,程序运行时依赖对应动态库。

1.1 硬件环境

  • 搭载Windows系统的PC机
  • PC机内置摄像头或外置USB摄像头

1.2 软件环境

  • Qt5.9.7
  • OpenCV library
  • CMake

2 Qt5.9.7下载安装

2.1 Qt5.9.7下载

http://download.qt.io/archive/qt/5.9/5.9.7/下载Windows环境下qt-opensource-windows-x86-5.9.7.exe

《Qt5.9.7 OpenCV 人脸识别》之开发环境搭建(OpenCV库编译)

2.2 安装Qt5.9.7

一路 Next >> Skip >>下一步 >>选择安装文件夹,“下一步”。安装组件选择,然后“下一步”进行安装。

《Qt5.9.7 OpenCV 人脸识别》之开发环境搭建(OpenCV库编译)

将安装目录下D:\Qt\Qt5.9.7\Tools\mingw530_32\bin加入系统环境变量。

《Qt5.9.7 OpenCV 人脸识别》之开发环境搭建(OpenCV库编译)

3 CMake下载安装

3.1 CMake下载

https://cmake.org/download/下载最新版本CMake,这里选择Latest Release (3.13.4)。

《Qt5.9.7 OpenCV 人脸识别》之开发环境搭建(OpenCV库编译)

3.2 CMake安装

《Qt5.9.7 OpenCV 人脸识别》之开发环境搭建(OpenCV库编译)

《Qt5.9.7 OpenCV 人脸识别》之开发环境搭建(OpenCV库编译)

《Qt5.9.7 OpenCV 人脸识别》之开发环境搭建(OpenCV库编译)

《Qt5.9.7 OpenCV 人脸识别》之开发环境搭建(OpenCV库编译)

《Qt5.9.7 OpenCV 人脸识别》之开发环境搭建(OpenCV库编译)

4 OpenCV库下载

https://opencv.org/releases.html下载OpenCV library。当前最新版为4.0.1,这里选取3.4.5,选择源码包Sources

《Qt5.9.7 OpenCV 人脸识别》之开发环境搭建(OpenCV库编译)

5 OpenCV库编译

5.1 使用CMake配置生成Makefile

将下载好的opencv库源码包opencv-3.4.5.zip解压,新建构建路径文件夹build。

《Qt5.9.7 OpenCV 人脸识别》之开发环境搭建(OpenCV库编译)

打开cmake-gui。

《Qt5.9.7 OpenCV 人脸识别》之开发环境搭建(OpenCV库编译)

选择opencv-3.4.5的源码路径和构建路径。

《Qt5.9.7 OpenCV 人脸识别》之开发环境搭建(OpenCV库编译)

 

《Qt5.9.7 OpenCV 人脸识别》之开发环境搭建(OpenCV库编译)

选择Qt5.9.7安装目录下Tools\mingw530_32\bin下的编译器gcc和g++,然后“finish”。

《Qt5.9.7 OpenCV 人脸识别》之开发环境搭建(OpenCV库编译)

等待Configure结束。

《Qt5.9.7 OpenCV 人脸识别》之开发环境搭建(OpenCV库编译)

勾选ENABLE_CXX11,设置 CMAKE_BUILD_TYPERelease,其他默认配置,点击“Configure”重新配置,再点击“Generate”生成,之后在构建目录build下生成如下内容,生成了Makefile。

《Qt5.9.7 OpenCV 人脸识别》之开发环境搭建(OpenCV库编译)

5.2 MinGW编译生成静态库和动态库

命令行界面进入到build目录。这里使用Windows PowerShell,比起古老的cmd,操作非常便捷,功能强大且美观。

5.2.1 执行mingw32-make

《Qt5.9.7 OpenCV 人脸识别》之开发环境搭建(OpenCV库编译)

出现如下错误

《Qt5.9.7 OpenCV 人脸识别》之开发环境搭建(OpenCV库编译)

修改opencv-3.4.5\modules\videoio\src\cap_dshow.cpp ,在#include "DShow.h"这行的上面加一行#define NO_DSHOW_STRSAFE,如:

#define NO_DSHOW_STRSAFE

#include "DShow.h"

 

之后重新执行mingw32-make。

5.2.2 执行mingw32-make install

《Qt5.9.7 OpenCV 人脸识别》之开发环境搭建(OpenCV库编译)

在构建目录build下install\x86\mingw中编译生成了bin和lib,既是我们要用到的静态库和动态库。

《Qt5.9.7 OpenCV 人脸识别》之开发环境搭建(OpenCV库编译)

《Qt5.9.7 OpenCV 人脸识别》之开发环境搭建(OpenCV库编译)

《Qt5.9.7 OpenCV 人脸识别》之开发环境搭建(OpenCV库编译)