在Qt调用OpenCV库编写GUI程序
写在前面
OpenCV本身自带的HighGUI库就可以完成一部分GUI设计编写工作,无奈其中控件实在太少,除了按钮就是滚动条,OpenCV中文站上曾经给出了OpenCV和MFC的搭配调用,但是OpenCV作为跨平台的开源库,如果仅放到MS的PC平台上显然大大限制了其发挥;同时,OpenCV给出了很多人工智能,机器学习的解决方案,其在嵌入式设备中的运用远多于PC,因而跨平台的GUI库无疑十分必要,Qt作为LinuxGUI解决方案的一种,还大量应用在包括Linux Mac Windows等平台上,在嵌入式设备中Qt提供了自身的 X11方案,针对嵌入式设备低功耗,小屏幕,低分辨率的特点特别做出优化,因而Qt和OpenCV的结合无疑是激动人心的。
方法一:VS2008版
首先可以用在Visual Studio中集成使用 Qt Opensource 版本,具体方法如下
以前,Qt windows 只有商业版才支持 Visual Studio, Opensource 版只能使用 MinGW, 无论开发调试都很麻烦。
虽说最近 Qt 出了一款 QtCreator 用来专门支持 Opensource 开发,而且配备了强大的 debug helper 来支持 MinGW(Linux/Unix/Mac 下直接支持 GCC, GDB),但是在windows上开发,最爽的还是 Microsoft 出品的原生编译器和调试器, 相信你也不喜欢看到 MinGW 编译出来的 debug 版本 QtCored4.dll 有几十兆吧。
经过前几天研究发现, Opensource版本也可以直接集成至 VC 中,我们也不用再破解人家商业版本了, 为正版做贡献!
如果你不想使用 M$ 的 IDE, 那有更好的消息是,QtCreator 也支持 Visual studio 的nmake 和 windows debug tool。
先说 Visual Studio
本人使用 Visual Studio 2008 professional 版本、Qt Visual Studio Integration 和 Qt 4.6 Preview 。 另外, 在 Visual Studio 2005 Enterprise 版本、 Qt Visual Studio Add-in 和 Qt 4.5.3 Opensource 上也试过了。
Qt Visual Studio Integration 和 Qt Visual Studio Add-in 有何区别? 前者是商业版,后者是免费版本。前者更强大,可以直接在 VC 中编辑 .UI 文件,编辑 Slots/Signal 实时刷新 moc 文件等等,而 后者只是些基本功能,如工程转换,编译器整合调用等。
1. 下载 Qt 4.6 Preview 版本
当然,你也可以使用 4.5x 版本, 要下载源代码的,或者 SDK 中解出源代码
地址:http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.6.0-tp1.zip
2. 下载 Qt Visual Studio Add-in
当然,你有 Qt Visual Studio Integration 更好了, 或者 google 一个破解版
地址:http://download.qt.nokia.com/vsaddin/qt-vs-addin-1.0.2.exe
3. 使用 VC 编译 Qt
a. 将Qt源码放置到硬盘某个目录,即要安装的目录,如 d:\Qt\4.6-tp1, 不要有空格
b. 配置 Qt
windows 开始 ——> 所有程序 ——> Mircrosoft Visual Studio 2008 ——> Visual Studio Tools ——> Visual Studio 2008 Command Prompt 进入到 命令行下, 然后切换至Qt目录, 如:d:\Qt\4.6-tp1,敲入命令:
D:\Qt\qt-4.6.0-tp1>configure -platform win32-msvc2008
如果你 2005,那就win32-msvc2005了, 2003我没试过。
接着按照提示,选择opensource 版本,同意 GPL/LGPL/GPLV3 等协议就可以了, 接着开始编译 qmake 工具,输出 VC 工程 等等; 等完成后,敲入 nmake 编译所有工程, 或者 nmake release 编译 release 版本, nmake debug 编译 debug 版本等,随便你,这个 程很漫长,有点耐心。 如果担心期间报错不好搞, 可以直接在目录用 VC 下打开 projects.sln 解决方案文件自己编译,效果一样。推荐使用 VC 自己编译,我也是这么搞的,因为编译报错还修改了个文件。
4. 设置系统环境变量
增加 QTDIR 路径为 d:\Qt\4.6-tp1, 即include,bin 的上一级, 把 d:\Qt\4.6-tp1\bin 和 d:\Qt\4.6-tp1\lib 加入到 PATH 中。
5. 安装插件。
安装相关插件Qt Visual Studio Add-in 或者 Qt Visual Studio Integration。
6. 创建 Qt 工程,编译。
启动 VC,基本上一切就绪了,可以创建 Qt 工程,编译。 如果报错,请检查配置:在VC菜单中选择 Tools 选择 Options,然后点击Qt——> builds, 查看目录是否正切,如果没有,手动添加, 如下图:
然后就开始使用了!
这个虽然耗时耗力,但是一劳永逸,至少不必每次都运行qmake之类的东东了,在没有qt creator的时候是必备的。
然后用VS2008建立Qt工程之后,右键左边的工程文件(不是解决方案),最后一项是Properties,其中找到Linker 的input中加入OpenCV所需要的lib,如cxcore.lib cv.lib ml.lib cvaux.lib highgui.lib等需要的库。当然,这个VS要提前设置到C++的include目录和lib目录等,按照OpenCV中文站网站上说的的方法即可。
这种方法的缺点是VS2008太消耗资源了,但是至少可以适应OpenCV目录不好用的问题,用类似方法也可以用Cximage。尤其是Cximage还要设置各种其它选项,只有VS下设置才比较方便。
方法二:QT Creator
直接用OpenCV中文站里的方法
不过可以直接在creator下修改pro,也不用qmake了
占用资源比vs2008小多了,但是设置不是很方便。尤其是OpenCV如果目录有空格的话,只能重装或者用Xplorer2的硬盘映射功能了!
我目前的设置是
<code>INCLUDEPATH += E:\OpenCV\cv\include \ E:\OpenCV\cvaux\include \ E:\OpenCV\cxcore\include \ E:\OpenCV\ml\include \ E:\OpenCV\otherlibs\highgui \ E:\OpenCV\otherlibs\cvcam\include \LIBS += E:\OpenCV\lib\cv.lib \ E:\OpenCV\lib\cvaux.lib \ E:\OpenCV\lib\cxcore.lib \ E:\OpenCV\lib\highgui.lib \ E:\OpenCV\lib\ml.lib \</code>
给出一个实例,便于上手,这个东西挂在Google Code上,不过作者很久米有更新XD,不过看看模板就可以抛砖引玉
from: http://logicmd.net/2010/04/gui-programming-in-qt-using-opencv-lib/
在Qt调用OpenCV库编写GUI程序相关推荐
- linux下Qt调用C++库文件(.so)程序实现
文章目录 主要内容 一.编程环境及实现方法 二.项目实现 1.创建项目 2.导入库文件 三.项目中遇到的问题 总结 主要内容 如标题所示,在linux下使用qtcreator创建项目调用C++库文件, ...
- Qt实用技巧:VS2017编写纯C库以及使用Qt调用C库方法
若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/ ...
- 两台电脑串口传输文件及调用opencv库编程显示图片和文本
文章目录 一.两台电脑利用串口进行文件传输 (一).实验内容 (二).配置环境 (三).实验过程 (四).结果分析 二.在Ubuntu下基于Linux环境调用opencv库编程显示图片和文本 (一). ...
- 用gcc生成静态库和动态库和使用opencv库编写打开摄像头压缩视频
文章目录 一.用gcc生成静态库和动态库 1.编辑生成程序hello.h.hello.c.main.c 2.将hello.c生成.o文件 3.使用静态库 4.动态库的使用 二.a与.so库文件的生成与 ...
- Qt调用Matlab库C#库dll调用C++调用C#库CSharp库lib invoke matlab library .net donet netframework
Qt调用Matlab库C#库dll调用C++调用C#库CSharp库lib invoke matlab library .net donet netframework 该文章是一篇说明c++/Qt调用 ...
- QT添加OpenCV库
1.软件环境 Qtcreator Qt5.12.1 Windows10 64位系统 cmake3.13.2 opencv3.4.16 下载地址 QT: http://download.qt.io/ar ...
- 调用opencv库进行身份证号码识别主要流程
如题,就是对身份证拍照,处理相应照片,识别出身份证号码 这里需要调用opencv库.opencv库包含了许多处理图像的函数,功能全面而且强大,兼容多种语言.如何配置可以自行搜索. 主要流程如下: 读 ...
- 在Ubuntu下用C/C++(或python)调用opencv库编程显示一张图片并在上面加文字
一.实验内容 调用opencv库编程显示一张图片,并打开一个名为"logo.txt"的文本文件(其中只有一行文本文件,包括你自己的名字和学号),按照名字和学号去读取汉字24*24点 ...
- Qt调用OpenCV汇总(1)
//************************************************************************************************** ...
最新文章
- 程序的编译和链接过程
- python扫雷游戏_python实现扫雷小游戏
- Java模式(适配器模式)
- 7999元大疆最新无人机,支持第一人称视角极速拍摄,网友:不是航拍,是直接起飞...
- 学习鸟哥的Linux私房菜笔记(2)——基础指令
- nyoj496巡回赛-拓扑排序-拓扑序列
- python中range什么意思_python里range什么意思
- TreeSet集合为什么要实现Comparable?
- WINDOWS PHONE死于自己不兼容
- SAE J1939协议读取车辆故障码
- [IDE工具篇]推荐一款私密性较好的电子日记本
- 液晶12864图像取模方法
- Oracle随机抽样sample使用说明
- 2.5 Moblin项目提供的开发工具
- 推荐系统入门(六):新闻推荐实践1(附代码)
- 算法初步——冒泡排序
- 面试记录-苏宁(客服研发中心)
- PANDAS面板数据转换为dict字典数据
- 易语言snmp_易语言教程
- java数组添加 西游记,Java基础上机题
热门文章
- 结构体DIR和dirent
- NUXT快速开始,选择Vuetify
- 这年头,老赖没得混了!大数据式追债,你见过吗?
- JPOM - AOP+自定义注解实现操作日志记录
- 实战SSM_O2O商铺_25【商品类别】商品类别列表展示从Dao到View层的开发
- 实战SSM_O2O商铺_05集成SSM后验证DAO层、Service层、Controller层的配置
- /bin/bash: jar: command not found
- cad插入块_CAD中怎么创建多重插入块?
- 在云服务器上持续运行springboot项目
- 发布开源库的踩坑经历:jitpack.io