您的位置:首页 > 编程语言 > Qt开发

在Qt 5.7 下配置OpenCV 开发环境

2016-09-14 01:46 253 查看

什么是Qt和Opencv

什么?你说你要用MFC?其实之前我一直也是用MFC的,但是有一天我终于##受够了##MFC匪夷所思的命名规则,还有略显杂乱无章的设计…为什么不试试跨平台,酷炫,还真的OOP的Qt呢.

另一方面,Opencv包含了大量的计算机视觉算法.是一个国际上公认的优秀的算法库.我们很多日常开发如果不是特殊用途或者精度要求特别高的话,我们都会考虑使用Opencv来作为我们开发的算法支持,而不是自己去实现需要使用的算法.

虽然Opencv在算法方面做得很好,它也有自带的gui库-> highgui,但印象中从Opencv 1.0开始,到现在目前最新的Opencv 3.1 这个gui库都没有什么改变,依旧是那么的缺乏交互,如果用这个gui来做东西的话,DEMO级别的东西可以直接用它来做,毕竟短平快…但是如果要做真正的项目的话,Opencv自带的highgui还是难登大雅之堂.

后文看到这种格式的语句都可以略去不看,不影响操作


开始之前

好了,言归正传,今天的主要内容还是告诉大家如何配置Qt+Opencv协同工作.

在正式开始之前我们需要下载的软件如下:

1.Visual Studio 2015 Community

2.微软的WDK工具

3 .Qt 5.7.0 for Windows 64-bit (VS 2015, 918 MB) 官网链接::https://www.qt.io/download-open-source/

4.Opencv-3.1.0

请务必按照VS2015->WDK->QT->Opencv的顺序进行安装,否则安装将会出错.

饭要一口一口吃,环境要一个一个装..不听Yaokun言,吃亏在眼前.


开始

1.安装vs2015

这一步开始之前请确认你的C:\有10G以上空间.之前我安装的时候虽然是选择了在D:\安装但是最后观察来看D:\基本上没有占用多少空间,倒是C:\被占用了大概8Gb左右的空间,知道为什么的朋友可以留言和我交流一下.

不知道怎么安装VS2015的朋友请看这里

VS2015版本默认不安装VC++编译器,请务必手动选择安装之

2.安装WDK

WDK是Windows 驱动程序工具包 的简称.由于我们这里使用的是Qt,而且是msvc版本的Qt creator.就要使用vs2015的complier,但是vs的debugger是内嵌在vs软件里的,从外部是不能调用的,所以我们需要下载WDK来替代gdb,除非你告诉我你能写出没有bug的程序,不需要debugger..

看到这里有的朋友可能会疑问,为什么不直接用MingW版本的Qt呢?还要装一个臃肿的VS...因为Opencv目前的预编译版本只有vs系列的,最新的3.1版本增加了VC14,也就是给出了一个vs2015的预编译版本.而没有MingW对应的编译好的文件,所以你只能自己去编译一遍Opencv给Qt+MingW用.如果有时间在下篇文章会讲这个办法,所以今天我们就先将就一下,用VS系的工具啦.


到刚刚我给出的链接那去下载WDK



然后blabla安装好了…然后进行下一步.

3.安装Qt

也是一路确定blabla…

安装好之后如果正常你将会看到Qt Creator 自动检测到你之前安装了VS2015



如果没有,请确认你安装的qt版本是mingw还是msvc的.

安装Opencv

解压缩到你的目录 注意:强烈建议不要使用中文目录



然后进入到opencv->build->x64你会发现有两个文件夹,分别是vc12和vc14,分别对应vs2013,vs2015两个版本.这也是Opencv3.1新更新的内容之一,如果你是用Opencv3.0+vs2015意味着你只能选择vc12编译版本的,会提示你找不到msvcr120d.dll.这个就比较不开心了.



好,做到这里已经完成了一大半了,接下来我们配置一下工程来看我们搭建的环境work不work.

配置环境

环境变量的配置

在系统环境变量中找到Path一栏,加入下面两个:



我这里使用了一个工具来看环境变量,大家嫌麻烦可以直接拷贝出来用sublime或者记事本之类来编辑,反正只要能分行,看着方便就行…

建立Qt工程

我们就简单点,建立个Widgets工程吧



最重要的是修改pro文件,这里的pro文件就是工程的属性配置,经过qmake之后会生成make文件.实在是比VS系列慢慢点鼠标地弄配置表方便多了.

学习一下pro文件的写法或者你直接去学习cmake的写法还是很有意义的.但是这里看不懂也没关系,直接在你自动生成的pro文件里加上这两段就行

INCLUDEPATH += D:\opencv\opencv3\build\include\opencv2 \
D:\opencv\opencv3\build\include\opencv  \
D:\opencv\opencv3\build\include

LIBS +=  D:\opencv\opencv3\build\x64\vc14\lib\opencv_world310d.lib \


只要把引用目录和库加上就可以了.

直接上我的全部pro文件吧

#-------------------------------------------------
#
# Project created by QtCreator 2016-09-14T01:04:09
#
#-------------------------------------------------

QT += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = opencvTest3
TEMPLATE = app

INCLUDEPATH += D:\opencv\opencv3\build\include\opencv2 \ D:\opencv\opencv3\build\include\opencv \ D:\opencv\opencv3\build\include LIBS += D:\opencv\opencv3\build\x64\vc14\lib\opencv_world310d.lib \
SOURCES += main.cpp\
mainwindow.cpp

HEADERS += mainwindow.h

FORMS += mainwindow.ui


之后就会发现Qt已经找到Opencv的文件了,开始代码提示了.



这里做了一个小例子,在窗口中设置了一个按钮,按钮通过Qt的信号槽连接到槽函数(有点类似钩子函数)中在槽函数中打开资源管理器,让你选一张图片,然后调用opencv的canny算子来做边缘检测,并最后把变换前后的图像都显示出来.

效果如下:



这里由于时间原因还是用了opencv自己的gui.等有空了改成用qt的gui来显示,更能说明问题!

最后,有什么不清楚的地方还请留言,我会及时补充!

谢谢
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: