Qt系列-2、VS2010+QT5+opencv2.4用户界面第一个程序
2014-04-23 11:38
477 查看
声明:转载自/article/7801802.html
-----------------------------------------------------------------------------------------------------------------------------
1、新建QT5工程
用VS2010新建一个工程,选择QT5 Projects-》QT application,工程名为Qt5test
一键Ok,直接Finish,工程就建立成功了。
2、【这是重点】 使用QT设计师设计界面以及链接信息/槽
双击qt5test.ui,会弹出来Qt 设计师界面,
拖两个按钮添加到界面中,然后双击修改按钮的名称,以及改变按钮的尺寸。
然后链接信息/槽,选中 编辑信息/槽 按钮(如下图),左键Open Image按钮,拖拽,就可以拖出一条链接信号/槽的线,松开鼠标,就弹出编辑出口(如下图)。点击编辑按钮,在槽中添加按钮按下的响应函数,OpenImageClicked()以及ProcessClicked()函数,确定后,点击click,选择OpenImageClicked()作为按钮Open Image的响应函数,同样设置Process的响应函数为ProcessClicked();设计好的界面记得保存,VS2010运行是不会对Qt
Project自动保存,只会加载之前保存的界面,这个界面设计对应文件"ui_qt5test.h" ,可以看到这个文件的内容,其实是把你的每个拖拽动作转化为了代码。
3 编写响应函数程序
在QT5test类中声明和定义两个按钮响应函数OpenImageClicked()和ProcessClicked()
双击qt5test.h,在类中添加两个响应函数的声明,添加头文件,以及私有变量cv::Mat image;
[cpp] view
plaincopy
#ifndef QT5TEST_H
#define QT5TEST_H
#include <QtWidgets/QMainWindow>
#include <Qlabel>
#include "ui_qt5test.h"
#include <opencv/cv.h>
#include <opencv/highgui.h>
class Qt5test : public QMainWindow
{
Q_OBJECT
public:
Qt5test(QWidget *parent = 0);
~Qt5test();
private:
Ui::Qt5testClass ui;
cv::Mat image; //定义私有变量 image
cv::Mat result;//定义私有变量 result
private slots: //声明信号函数
void OpenImageClicked();
void ProcessClicked();
};
#endif // QT5TEST_H
双击qt5test.cpp,定义响应函数
[cpp] view
plaincopy
#include "qt5test.h"
Qt5test::Qt5test(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
}
Qt5test::~Qt5test()
{
}
void Qt5test::OpenImageClicked()
{
image = cv::imread("img.jpg");//读取图像
cv::cvtColor(image, image, CV_RGB2RGBA);//图像在QT显示前,必须转化成QImage格式,将RGBA格式转化成RGB
QImage img = QImage((const unsigned char*)(image.data),
image.cols, image.rows, QImage::Format_RGB32);
QLabel *label = new QLabel(this);
label->move(130,50);
label->setPixmap(QPixmap::fromImage(img));
label->resize(label->pixmap()->size());
label->show();
}
void Qt5test::ProcessClicked()
{
cv::flip(image,result,1);//对图像进行翻转
QImage img = QImage((const unsigned char*)(result.data),
result.cols, result.rows, QImage::Format_RGB32);
QLabel *label = new QLabel(this);
label->move(380,50);
label->setPixmap(QPixmap::fromImage(img));
label->resize(label->pixmap()->size());
label->show();
}
3.4 运行程序结果如下
四、参考资料
Qt开发者社区 http://qt.csdn.net/index.aspx
Qt Project 官网 http://qt-project.org/
程序下载 VS2010+QT5.1.0+opencv
测试程序
-----------------------------------------------------------------------------------------------------------------------------
1、新建QT5工程
用VS2010新建一个工程,选择QT5 Projects-》QT application,工程名为Qt5test
一键Ok,直接Finish,工程就建立成功了。
2、【这是重点】 使用QT设计师设计界面以及链接信息/槽
双击qt5test.ui,会弹出来Qt 设计师界面,
拖两个按钮添加到界面中,然后双击修改按钮的名称,以及改变按钮的尺寸。
然后链接信息/槽,选中 编辑信息/槽 按钮(如下图),左键Open Image按钮,拖拽,就可以拖出一条链接信号/槽的线,松开鼠标,就弹出编辑出口(如下图)。点击编辑按钮,在槽中添加按钮按下的响应函数,OpenImageClicked()以及ProcessClicked()函数,确定后,点击click,选择OpenImageClicked()作为按钮Open Image的响应函数,同样设置Process的响应函数为ProcessClicked();设计好的界面记得保存,VS2010运行是不会对Qt
Project自动保存,只会加载之前保存的界面,这个界面设计对应文件"ui_qt5test.h" ,可以看到这个文件的内容,其实是把你的每个拖拽动作转化为了代码。
3 编写响应函数程序
在QT5test类中声明和定义两个按钮响应函数OpenImageClicked()和ProcessClicked()
双击qt5test.h,在类中添加两个响应函数的声明,添加头文件,以及私有变量cv::Mat image;
[cpp] view
plaincopy
#ifndef QT5TEST_H
#define QT5TEST_H
#include <QtWidgets/QMainWindow>
#include <Qlabel>
#include "ui_qt5test.h"
#include <opencv/cv.h>
#include <opencv/highgui.h>
class Qt5test : public QMainWindow
{
Q_OBJECT
public:
Qt5test(QWidget *parent = 0);
~Qt5test();
private:
Ui::Qt5testClass ui;
cv::Mat image; //定义私有变量 image
cv::Mat result;//定义私有变量 result
private slots: //声明信号函数
void OpenImageClicked();
void ProcessClicked();
};
#endif // QT5TEST_H
双击qt5test.cpp,定义响应函数
[cpp] view
plaincopy
#include "qt5test.h"
Qt5test::Qt5test(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
}
Qt5test::~Qt5test()
{
}
void Qt5test::OpenImageClicked()
{
image = cv::imread("img.jpg");//读取图像
cv::cvtColor(image, image, CV_RGB2RGBA);//图像在QT显示前,必须转化成QImage格式,将RGBA格式转化成RGB
QImage img = QImage((const unsigned char*)(image.data),
image.cols, image.rows, QImage::Format_RGB32);
QLabel *label = new QLabel(this);
label->move(130,50);
label->setPixmap(QPixmap::fromImage(img));
label->resize(label->pixmap()->size());
label->show();
}
void Qt5test::ProcessClicked()
{
cv::flip(image,result,1);//对图像进行翻转
QImage img = QImage((const unsigned char*)(result.data),
result.cols, result.rows, QImage::Format_RGB32);
QLabel *label = new QLabel(this);
label->move(380,50);
label->setPixmap(QPixmap::fromImage(img));
label->resize(label->pixmap()->size());
label->show();
}
3.4 运行程序结果如下
四、参考资料
Qt开发者社区 http://qt.csdn.net/index.aspx
Qt Project 官网 http://qt-project.org/
程序下载 VS2010+QT5.1.0+opencv
测试程序
相关文章推荐
- win7运行第一个opencv程序,基于opencv3.2,官方vc14编译版本,QT5.8 VS2015平台
- Python2.7+PyQt4 QtDesigner学习笔记系列——3:QtDesigner第一个小程序
- VS2010+OpenCV2.4.4+Qt4.8.4 图形界面第一个演示程序
- VS2010+OpenCV2.4.3+Qt4.8.4 图形界面第一个演示程序
- 【Java Opencv系列】2.1Java中调用Opencv的方法(第一个JavaOpencv程序)
- VS2010+QT5.1+opencv2.4.5图像界面第一个程序(改了一些,现在QT5.4,OPENCV2.4.10)
- 【 D3.js 入门系列 — 1 】 第一个程序 HelloWorld
- SBT(Scala Build Tool)系列教程-使用sbt构建第一个简单的HelloWorld程序
- Qt中用OpenCV2.4读取并把图像显示在QLabel中 (Ubuntu12.04)
- Ubuntu10.04下安装Qt4和创建第一个Qt程序
- 编译第一个opencv测试程序
- tiny6410的Qt4的移植和第一个Qt4软件的运行以及如何在qtopia下运行自己的qt4程序
- (GO_GTD_1)基于OpenCV和QT,建立Android图像处理程序
- 第一个QT程序
- C的旅程系列之第一个C程序
- vs2013+qt5.3环境下第一个opencv2.4.9程序
- Ubuntu12.04下安装Qt4和创建第一个Qt程序
- Ubuntu10.04下安装Qt4和创建第一个Qt程序
- qt5.1+ vs2013+opencv2.4.8制作第一个图形界面
- 【SignalR学习系列】2. 第一个SignalR程序