什么是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的顺序进行安装,否则安装将会出错.
开始
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..
到刚刚我给出的链接那去下载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文件里加上这两段就行
只要把引用目录和库加上就可以了.
直接上我的全部pro文件吧
之后就会发现Qt已经找到Opencv的文件了,开始代码提示了.
这里做了一个小例子,在窗口中设置了一个按钮,按钮通过Qt的信号槽连接到槽函数(有点类似钩子函数)中在槽函数中打开资源管理器,让你选一张图片,然后调用opencv的canny算子来做边缘检测,并最后把变换前后的图像都显示出来.
效果如下:
这里由于时间原因还是用了opencv自己的gui.等有空了改成用qt的gui来显示,更能说明问题!
最后,有什么不清楚的地方还请留言,我会及时补充!
谢谢