写在前面

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程序相关推荐

  1. linux下Qt调用C++库文件(.so)程序实现

    文章目录 主要内容 一.编程环境及实现方法 二.项目实现 1.创建项目 2.导入库文件 三.项目中遇到的问题 总结 主要内容 如标题所示,在linux下使用qtcreator创建项目调用C++库文件, ...

  2. Qt实用技巧:VS2017编写纯C库以及使用Qt调用C库方法

    若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/ ...

  3. 两台电脑串口传输文件及调用opencv库编程显示图片和文本

    文章目录 一.两台电脑利用串口进行文件传输 (一).实验内容 (二).配置环境 (三).实验过程 (四).结果分析 二.在Ubuntu下基于Linux环境调用opencv库编程显示图片和文本 (一). ...

  4. 用gcc生成静态库和动态库和使用opencv库编写打开摄像头压缩视频

    文章目录 一.用gcc生成静态库和动态库 1.编辑生成程序hello.h.hello.c.main.c 2.将hello.c生成.o文件 3.使用静态库 4.动态库的使用 二.a与.so库文件的生成与 ...

  5. 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调用 ...

  6. QT添加OpenCV库

    1.软件环境 Qtcreator Qt5.12.1 Windows10 64位系统 cmake3.13.2 opencv3.4.16 下载地址 QT: http://download.qt.io/ar ...

  7. 调用opencv库进行身份证号码识别主要流程

    如题,就是对身份证拍照,处理相应照片,识别出身份证号码 这里需要调用opencv库.opencv库包含了许多处理图像的函数,功能全面而且强大,兼容多种语言.如何配置可以自行搜索.  主要流程如下: 读 ...

  8. 在Ubuntu下用C/C++(或python)调用opencv库编程显示一张图片并在上面加文字

    一.实验内容 调用opencv库编程显示一张图片,并打开一个名为"logo.txt"的文本文件(其中只有一行文本文件,包括你自己的名字和学号),按照名字和学号去读取汉字24*24点 ...

  9. Qt调用OpenCV汇总(1)

    //************************************************************************************************** ...

最新文章

  1. 程序的编译和链接过程
  2. python扫雷游戏_python实现扫雷小游戏
  3. Java模式(适配器模式)
  4. 7999元大疆最新无人机,支持第一人称视角极速拍摄,网友:不是航拍,是直接起飞...
  5. 学习鸟哥的Linux私房菜笔记(2)——基础指令
  6. nyoj496巡回赛-拓扑排序-拓扑序列
  7. python中range什么意思_python里range什么意思
  8. TreeSet集合为什么要实现Comparable?
  9. WINDOWS PHONE死于自己不兼容
  10. SAE J1939协议读取车辆故障码
  11. [IDE工具篇]推荐一款私密性较好的电子日记本
  12. 液晶12864图像取模方法
  13. Oracle随机抽样sample使用说明
  14. 2.5 Moblin项目提供的开发工具
  15. 推荐系统入门(六):新闻推荐实践1(附代码)
  16. 算法初步——冒泡排序
  17. 面试记录-苏宁(客服研发中心)
  18. PANDAS面板数据转换为dict字典数据
  19. 易语言snmp_易语言教程
  20. java数组添加 西游记,Java基础上机题

热门文章

  1. 结构体DIR和dirent
  2. NUXT快速开始,选择Vuetify
  3. 这年头,老赖没得混了!大数据式追债,你见过吗?
  4. JPOM - AOP+自定义注解实现操作日志记录
  5. 实战SSM_O2O商铺_25【商品类别】商品类别列表展示从Dao到View层的开发
  6. 实战SSM_O2O商铺_05集成SSM后验证DAO层、Service层、Controller层的配置
  7. /bin/bash: jar: command not found
  8. cad插入块_CAD中怎么创建多重插入块?
  9. 在云服务器上持续运行springboot项目
  10. 发布开源库的踩坑经历:jitpack.io