一直对MFC对OpenCV的支持不好而耿耿于怀,了解了Qt对OpenCV支持很好,但网上这方面的资料很少。大部分的图形交互的设计都是基于OpenCV2.0之前的数据结构lpImage进行的。最近得到了一本好书《OpenCV 2 Computer Vision Application Programming Cookbook》,下载的链接为http://ishare.iask.sina.com.cn/f/20485520.html?retcode=0,2011年5月出版,全书都是基于OpenCV2.2版本的实现,采用了新的数据结构。我这里强烈建议利用C++开发的朋友们不要再使用老版本的数据结构了,实在影响开发效率。至于大家最熟悉的参考书《learning
OpenCV》和《OpenCV教程——基础篇》这两本广为流传的书,我的看法是已经远远不能满足OpenCV新版本的学习了。真的希望这本新书的中文版尽快出炉。
参考这本书的利用Qt创建GUI,不过书中的办法是在Qt Creator下实现的,我这里通过VS2008+Qt实现。下面结合一个例程介绍一下如何在Qt的GUI环境下开发OpenCV。
先新建工程Qt Project --> Qt Application,点击finish完成工程的创建。然后在项目属性里的连接器的附加依赖项里面添加opencv的lib文件。工程创建好之后,一个后缀名为.ui的文件就是关于界面设计的。首先创建两个按钮,拖拽两个Push Buttons到Form中去,修改其属性,一个名字为Open Image,一个为Process。右键按钮选择connect signal为其添加响应函数,选择clicked()。对应的cpp文件多出了on_OpenImage_clicked函数,代码如下:
接下来要在对应的头文件中添加显示图片的必要代码,添加QFileDialog类的声明,OpenCV必要的include头文件包含,在类中声明一个cv :: Mat成员变量。代码如下:
接下来添加on_OpenImage_clicked的函数内容。代码如下:
类似的办法添加Process按钮的相应代码:
这样就可以实现一个普通的按钮响应。但我们的目的是将图片显示在对话框form中,这还需要进一步深入学习。与MFC中显示图片需要CvvImage类似,要想在Qt的Form中显示图片,图片的格式也必须为QImage,需要将cv::Mat的BGR通道顺序变换为RGBA,QImage的格式为Format_RGB32,调用cvtColor实现(这里例程里调用的为BGR2RGB,然后QImage的格式为Format_RGB888,但我试验显示结果是有问题的,故自己调整了一下)。(后经实验,BGR2RGB,Format_RGB888这组参数对于webcam视频是正确的,对于我当时的实验照片是不正确的,格式的问题真是混乱!!!)实现代码如下:
注意打开图片的路径不要有中文,最后的显示结果为
相关代码的下载地址为http://download.csdn.net/detail/yang_xian521/3793960
分享到:
相关推荐
Qt+openCV学习笔记(十六)Qt6.6.0rc+openCV4.8.1+emsdk3.1.37编译的静态库 CSDN审核可能较慢,如无法下载,可以过段时间再回来看下 仅供相关爱好者交流使用,请于下载24小时内删除
基于OpenCV和C++的水果识别、Qt界面、颜色识别、边缘检测、图像处理+源代码+文档说明 开发环境为C++、OpenVC、QT, 功能主要有 1. 调用OpenCV图像处理算法,如颜色提取、边缘检测、灰度直方图等 2. QT布局的界面 3....
opencv的整理笔记,里面有在vs2005的环境搭建和qt的环境搭建,还有一部分简单的小例子
本文实例为大家分享了OpenCV学习笔记之针对二值图像的边缘光滑处理(突出部消除),供大家参考,具体内容如下 处理代码分为两部分,第一部分用于去除边缘的突出部,第二部分用于边缘光滑。具体如下所示 1.去除边缘...
Qt+openCV学习笔记(十三)openCV4.5.5+android-ndk-r22-windows-x86_64编译的armeabi-v7a动态库 https://blog.csdn.net/aggs1990/article/details/124526728 CSDN审核可能较慢,如无法下载,可以过段时间再回来看...
Qt+openCV学习笔记(十三)openCV4.5.5+android-ndk-r22-windows-x86_64编译的armeabi-v7a动、静态库(无本地camera调用) https://blog.csdn.net/aggs1990/article/details/124526728 CSDN审核可能较慢,如无法...
Qt+openCV学习笔记(十三)openCV4.5.5+android-ndk-r22-windows-x86_64编译的arm64-v8a动、静态库 https://blog.csdn.net/aggs1990/article/details/124526728 CSDN审核可能较慢,如无法下载,可以过段时间再回来...
2020新版本pycharm+anaconda+opencv+pyqt环境配置学习笔记,亲测可用一、pycharm介绍与安装1.pycharm介绍选择原因2.安装教程二、anaconda介绍与安装1.anaconda介绍选择原因2.安装教程三、重要!pycharm和anaconda...
Qt+openCV学习笔记(六)openCV4.5.4+android-ndk-r21-windows-x86_64编译armeabi-v7a动、静态库, https://blog.csdn.net/aggs1990/article/details/121239228 CSDN审核可能较慢,如无法下载,可以过段时间再回来看...
Qt+openCV学习笔记(七)openCV4.5.4+android-ndk-r21-windows-x86_64编译arm64-v8a动、静态库, https://blog.csdn.net/aggs1990/article/details/121254838 CSDN审核可能较慢,如无法下载,可以过段时间再回来...
opencv 4.1.0学习笔记,机器视觉,记忆交流QT5.14
学习《OpenCV3和Qt5 计算机视觉应用开发》,记录总结学习过程。 第2章、第3章的练习程序
Qt超详细教程(带源码)
里面是我学习NAO的经验总结,主要内容有 1、Ubuntu下NAO环境配置 ...如果你是学习NAO机器人一员,这将加快你对nao机器人的了解与开发,本文章同样使用于linux下opencv的学习者,帮助其快速解决编译问题!
最大的Qt4程序群(KDE4)采用cmake作为构建系统Qt4的python绑定(pyside)采用了cmake作为构建系统开源的图像处理库 opencv 采用
程序需要使用Python语言编写,经过调研发现PyQt5配合QtDesigner在界面程序编写方面具有功能丰富、入门简单的优点,适合我这种编程的小白。PyQt5虽然入门比较简单,但对于我这种小白来讲还是挺有难度的,学习过程中也...