Windows Qt5.6.2与OpenCV3.2.0整合环境搭建与设置

本文记录我在Windows上将跨平台开发技术Qt5.6.2与OpenCV进行整合的技术细节,并进行验证。

Qt is not a programming language on its own. It is a framework written in C+

Qt是一款通用的跨平台开发技术,现在(2017-05-28)已经发布了Qt5.9正式版,正在规划Qt5.10版本了。Qt已经完成了windows/Linux/Andoird/iOS/ARM Linux等多个平台兼容性支撑,能非常方便的在一个平台开发,并编译到其他所有平台去。

OpenCV是开源http://github.com/opencv/opencv的计算机视觉库,包含了大量的先进、稳定的图像处理算法。在需要进行图像处理任务时,OpenCV绝对是最优的选择之一。

本文分为四个部分:

  1. Qt5.6.2的安装
  2. OpenCV3.2.0 for Qt的编译
  3. Qt的OpenCV引入设置
  4. Qt+OpenCV 整合验证

Qt5.6.2的安装与配置

讲道理,Qt的版本升级可谓神速,一年一个大版本的迭代。特别在Qt提出了QML的新思路后,更是在新特性上一路绝尘。当然,如果你是追求更好的性能和更快的开发速度的话,使用最新版本的没什么错。但是我还是建议你使用qt5中的Qt5.6.2,这是一个LTS(Long Time Support)版本,最长维护计划到2018年。
qt-versin

1. Qt5.6.2下载

前往Qt的发布站下载Qt版本发行包

https://download.qt.io/archive/qt/5.6/5.6.2/

下面以64位系统为例,如果你已经安装了Microsoft Visual Studio2015我推荐你安装:qt-opensource-windows-x86-msvc2015_64-5.6.2.exe;如果没有的话,还是下载:qt-opensource-windows-x86-mingw492-5.6.2.exe

qt-download

PS. 最好用迅雷来下载,浏览器的下载速度很慢。
PPS. 后续的说明均有MinGW版为例

2. Qt5.6.2安装

安装没什么好说的,双击下载下来的安装包即可,里面已经自带了QtCreator。这里我假定安装目录是path/Qt5.6.2-mingw/

其中需要注意的是,如果你安装的MinGW版本,务必也附带勾选MinGW编译链安装

qt-mingw-install

3. 环境变量设置

我们需要把Qt和MinGW的相关工具加入到系统的环境变量中,以方便后续的OpenCV编译工作。需要加入的环境变量包括:

  1. path/Qt5.6.2-mingw/Qt5.6.2-mingw/5.6/mingw49_32/bin
  2. path/Qt5.6.2-mingw/Tools/mingw492_32/bin

其中第1项包括了Qt的一些编译工具如qmake.exe,第二项包括了MinGW的编译工具如gcc.exe

环境变量设置完毕后最好在命令行工具中测试一下:
qmake-test
mingw32-test

4. Qt5.6.2安装完成

这个时候Qt的安装工作就完成了,可以用qtcreator打开一些Qt的实例程序进行体验。下一步我们将进行OpenCV的安装与配置。

OpenCV的安装与配置

1. OpenCV下载

由于OpenCV的广泛使用,社区的力量在帮助OpenCV不断地推动new feature和bug fix。作为日常使用,还是推荐OpenCV官方发布的稳定版本。

https://github.com/opencv/opencv/archive/3.2.0.zip

PS. github的下载那是一如既往的慢,迅雷也没什么太大的提升。可以@我邮件你一份。
PPS. 假设opencv的源码保存目录是path/opencv-3.2.0

2. cmake-gui安装

我们在上一步下载的是OpenCV的源码,还不能直接使用。cmake-gui是一个非常方便的跨平台编译工具,能提供图形化的编译选型设置。

下载地址:
https://cmake.org/files/v3.8/cmake-3.8.1-win64-x64.msi

3. 配置cmake OpenCV for Qt

首先创建编译输出文件夹path/opencv-3.2.0-qt-mingw
然后启动cmake-gui
其中where is the source code对应的是path/opencv-3.2.0,而where to build the binares是path/opencv-3.2.0-qt-mingw

接着点击Configure,会弹出选择编译器的选项。可以按照如下方法设置:

1
2
3
4
Specify the generator for this project: MinGW Makefiles
Specify native compilers:
Compilers C: path/Qt5.6.2-mingw/Tools/mingw530_32/bin/gcc.exe
Compilers C++: path/Qt5.6.2-mingw/Tools/mingw530_32/bin/g++.exe

在配置过程中需要注意的是一下选项都需要设置和勾选:

[X]WITH_QT
[X]WITH_OPENGL

KEYVALUE
QT_MAKE_EXECUTABLEpath/Qt5.6.2-mingw/mingw53_32/bin/qmake.exe
Qt5Core_DIRpath/Qt5.6.2-mingw/mingw53_32\lib\cmake\Qt5Core
Qt5Concurrent_DIRpath/Qt5.6.2-mingw/mingw53_32\lib\cmake\Qt5Concurrent
Qt5Gui_DIRpath/Qt5.6.2-mingw/mingw53_32\lib\cmake\Qt5Gui
Qt5Test_DIRpath/Qt5.6.2-mingw/mingw53_32\lib\cmake\Qt5Test
Qt5Widgets_DIRpath/Qt5.6.2-mingw/mingw53_32\lib\cmake\Qt5Widgets
Qt5OpenGL_DIRpath/Qt5.6.2-mingw/mingw53_32\lib\cmake\Qt5OpenGL

接着点击Configure和generate后,cmake配置完成。

4. 编译输出 OpenCV for Qt

在上一步中,已经完成了OpenCV for Qt的编译配置文件输出,这一步需要实施对OpenCV的编译。
进入到设置的opencv编译输出目录path/opencv-3.2.0-qt-mingw

1
2
cd path/opencv-3.2.0-qt-mingw
mingw32-make -j 8

如果编译过程中,最终没有什么异常的话,执行

1
mingw32-make install

紧接着将path/opencv-3.2.0-qt-mingw/install/bin添加至系统变量,即可完成OpenCV for Qt的安装与配置。