VS2015+QT5.7+opencv3.10图像处理
2017-08-25 22:55
513 查看
VS2010+QT5.7+opencv2.4.5图像界面第一个程序
QT最近新出了5.1.0版本,最近要用QT编写界面,所以重新下载了新的QT,替换了以前的Qt4.8.4.VS2015+opencv2.4.5+Qt4.8.4的配置过程,请参考博文 OpenCV2.4.5
+ QT4.8.4 + VS2015 环境搭建 地址 http://blog.csdn href="http://lib.csdn.net/base/dotnet" target=_blank>.NET/skeeee/article/details/8802375
在这就只介绍QT5.1安装。
一、QT版本的下载
QT 安装包下载 Qt
5.1.0 for Windows 32-bit (VS 2010, 505 MB)(Info)
QT VS2015插件 Visual
Studio Add-in 1.2.2 for Qt5 (does not work with the Express edition)
二、QT5.1 安装
2.1 软件安装
安装 QT VS Addin插件,以及QT安装包,要注意的是安装路径不能有中文,所以我QT安装包直接选择d:/QT,省下一直Next就行。
2.2 环境变量的配置
我的电脑-》右键属性-》高级-》环境变量 ,在PATH中加上 ;D:\Qt\Qt5.7.0\5.7.0\msvc2010\bin
如图:
然后在VS2017中也要设置环境变量,QT7-》属性-》Add,版本名称是QT5.7.0,路径:D:\Qt\Qt5.1.0\5.1.0\msvc2010
三、第一个图形界面程序
3.1新建QT5.1工程
配置完成后,用VS2010新建一个工程,选择QT5 Projects-》QT application,工程名为Qt5test
一键Ok,直接Finish,工程就建立成功了。
3.2 使用QT设计师设计界面以及链接信息/槽
双击qt5test.ui,会弹出来Qt 设计师界面,拖两个按钮添加到界面中,然后双击修改按钮的名称,以及改变按钮的尺寸。
然后链接信息/槽,选中 编辑信息/槽 按钮(如下图),左键Open Image按钮,拖拽,就可以拖出一条链接信号/槽的线,松开鼠标,就弹出编辑出口(如下图)。点击编辑按钮,在槽中添加按钮按下的响应函数,OpenImageClicked()以及ProcessClicked()函数,确定后,点击click,选择OpenImageClicked()作为按钮Open Image的响应函数,同样设置Process的响应函数为ProcessClicked();设计好的界面记得保存,VS2010运行是不会对Qt
Project自动保存,只会加载之前保存的界面
3.3 编写响应函数程序
在QT5test类中声明和定义两个按钮响应函数OpenImageClicked()和ProcessClicked()
双击qt5test.h,在类中添加两个响应函数的声明,添加头文件,以及私有变量cv::Mat image;
[cpp] view plain copy print?#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
#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 plain copy print?#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();
}
#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 href="http://lib.csdn.net/base/dotnet" target=_blank>.net/index.aspx
Qt Project 官网 http://qt-project.org/
程序下载 VS2010+QT5.1.0+opencv
测试程序
相关文章推荐
- 图像处理之其他杂项(一)之MeanShift的目标跟踪算法opencv c++代码 VS2015+opencv3.2
- 【计算机视觉】【图像处理】【VS开发】【Qt开发】opencv之深拷贝及浅拷贝,IplImage装换为Mat
- VS2012中MFC使用Picture Control显示OpenCV处理的图像
- opencv3.1+vs2015配置及图像加载、修改、保存
- vs2013在图像处理中的应用(6):使用OpenCV进行图像处理
- VS2015 编译DCMTK,读取CT图像并转换为OpenCV格式
- opencv 05 Haar 面部特征处理(facial_features) vs2015
- 使用VS+OpenCV的图像处理简单例子
- VS+QT+OpenCV图像处理输出
- 【OpenCV图像处理入门学习教程一】OpenCV2 + 3的安装教程与VS2013的开发环境配置 + JPEG压缩源码分析与取反运算修改
- 【OpenCV3图像处理】OpenCV3 安装、配置、编译(win10+VS2015环境)
- [vs+qt+opencv]手把手做GUI图像采集及处理UI交互界面
- vs2015下Cmake3.10编译Opencv3.4及opencv_contrib3.4在Windows10
- 基于VS针对opencv图像处理的可执行程序打包
- 在VS2015上配置Opencv3.10
- 图像处理之其他杂项(二)之 opencv vs中断内存等问题解决策略 不定时更新
- 图像处理遇到的一些问题整理(OpenCV and Emgu)
- 图像处理基础(2):自适应中值滤波器(基于OpenCV实现)
- Python-OpenCV 处理图像(二)(三):滤镜和图像运算 图像像素点操作