首页 > 学院 > 开发设计 > 正文

Windows下OpenCV 3.1.0 在 Qt Creator中的配置

2019-11-08 03:12:43
字体:
来源:转载
供稿:网友

Windows下OpenCV 3.1.0 在 Qt Creator 4.0.2 (Qt 5.7.0 MinGW) 中的开发环境配置

最近正在学习OpenCV ,为毕业设计做准备。Windows版本的OpenCV都默认提供对VS的支持,其在VS中的配置比较简单,网上也有大批教程详细描述了配置步骤。但在使用Qt Creator时的配置就较为繁琐,网络上大多数教程使用的软件版本也比较陈旧,经反复尝试后终于成功,特将配置步骤记录下来,以便以后及他人查阅参考。

1. 前期准备

本机环境及使用软件:

Windows 7 64位OpenCV 3.1.0 : https://sourceforge.net/PRojects/opencvlibrary/files/Qt 5.7.0 : http://www.qt.io/ or http://download.qt.io/MinGW 5.3.0 : 包含在Qt中,无需单独下载。CMake 3.7.2 : https://cmake.org/

首先,建议上述所有软件的安装路径都不要包含中文或空格

OpenCV 目前(2017.2)最新版本为3.2.0。安装OpenCV其实就是解压,尽量解压在某盘根目录或较短的目录下。对于本文来说,因为需要重新编译源码,也可以只到github上下载源码: https://github.com/opencv/opencv 。

Qt 目前最新版本为5.8.0。鉴于国内网络环境,建议下载离线版。关于Qt的安装与配置,可在另一篇博客中查看(未完成),安装过程中要勾选安装MinGW。本人使用的版本为: qt-opensource-windows-x86-mingw530-5.7.0

CMake主要用来生成Makefiles,与MinGW中的编译器配合使用。安装过程中注意勾选“为所有用户添加环境变量”:Add CMake to the system PATH for all users

确保上述软件安装好之后,可进行下一步操作。

2. CMake中的操作

打开CMake (cmake-gui)。

第一行源代码位置,选择 ../opencv/sources 文件夹,如:D:/opencv/sources

第二行是编译输出的目录,建议放在某盘根目录或较短的目录下,如 D:/opencv_mingw

cmake step1

点击configure,下拉列表里选择MinGW Makefiles,选项选择Specify native compilers,点击Next;

cmake step2

指定编译器,在Qt自带的MinGW的目录下:

C 编译器:C:/Qt/Qt5.7.0/Tools/mingw530_32/bin/gcc.exeC++编译器:C:/Qt/Qt5.7.0/Tools/mingw530_32/bin/g++.exeFortran不用填写

cmake step3

点击finish,此过程必须联网,因为需要下载几个文件。

等待一会儿后,会有一堆红色出现,无需担心。找到并勾选WITH_QT,如果要用OpenGL的功能可以勾选WITH_OPENGL不能勾选WITH_ipP(默认不勾选)

有的教程上说要在CMAKE_BUILD_TYPE处添加“Debug” ,不添加也不影响。

这里写图片描述

再次点击configure,若还有红色出现,再点击configure直到红色消失。

点击Generate按钮,完成后即可关闭CMake。

3. cmd下的操作

首先必须在环境变量中添加mingw的目录:C:/Qt/Qt5.7.0/Tools/mingw530_32/bin

打开cmd,转到用CMake生成的目录,如: cd /d D:/opencv_mingw

小提示:除了cd命令,还可以在要转到的目录下按住shift同时右键,点击“在此处打开命令窗口”。

之后输入 mingw32-make , 之后就开始漫长的等待。。。

[100%] 后输入 mingw32-make install ,稍等即可。

4. Qt Creator 中工程文件的配置

首先将编译好的库添加进环境变量,如 D:/opencv_mingw/bin ,如不添加则会出现程序编译通过但运行时提示“程序异常结束”的问题。

小提示:每次添加或删除环境变量后,都要重启Qt Creator才能生效。

打开Qt Creator,新建工程或者在已有工程文件中打开.pro文件,添加如下两句:

INCLUDEPATH += D:/opencv_mingw/install/includeLIBS += "D:/opencv_mingw/bin/libopencv_*.dll"

这里与很多使用OpenCV 2.4版本的教程不同,使用了动态链接库。

小提示:带空格的库路径是不能直接使用的,需要按如下格式输入:

INCLUDEPATH += $$quote(D:/Program Files/opencv_mingw/install/include)

LIBS += -L $$quote(D:/Program Files/opencv_mingw/bin/libopencv_*.dll)

在工程上右键点击执行QMake

qmake

之后进行正常的编译运行即可。

5. 示例程序

网络上的教程到最后示例程序这一步时,很多都是将Qt的原有结构删除,直接给一个opencv的简单程序就完事儿,一般都是显示一张图片。

我这里高级一点,给一个调用摄像头并显示图像的简单示例。

#include <opencv2/opencv.hpp>using namespace cv;int main(){ //【1】从摄像头读入视频 VideoCapture capture(0); //【2】循环显示每一帧 while(1){ Mat frame; //定义一个Mat变量,用于存储每一帧的图像 capture>>frame; //读取当前帧 imshow("video",frame); //显示当前帧 waitKey(30); //延时30ms } return 0;}

如果配置正确而且用的是笔记本,应该会出现自己的脸。这时可以用鼠标滚轮放大缩小一下看看效果:

example

但是,如果不去利用Qt设计界面的便捷特性,只是使用Qt Creator这个IDE,写着跟VS下一样的程序有什么意义呢?

所以我想提供一个让OpenCV 与Qt 结合使用的例子,这个例子将在另一篇博客里呈现(未完成)。


本人在配置过程中主要参考了以下两篇文章。

http://stackoverflow.com/questions/15881913/how-to-link-opencv-in-qtcreator-and-use-qt-library

http://blog.csdn.net/QQ_28839293/article/details/52230111


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表