Qt5+opencv显示图像的简单程序
一、win10上Qt5.11.2与VS2015的安装配置
(一)安装Qt5.11.2
- 官网下载Qt5.11.2
- 安装过程参考:Qt5.11.1安装与VS2017配置
(只在选择组件时替换为VS2015版本)
(二)Qt与VS2015关联
配置过程参考:Qt5.11.1安装与VS2017配置 与其完全相同
(三)配置环境变量
Qt VS Tools——>Qt Options
点击Add 添加msvs2015_64的路径
打开系统环境变量
在Path中 添加 Qt安装位置的msvs2015_64\bin路径
(四)测试
新建项目
在解决方案资源管理器中 双击同名的.ui文件
弹出Qt界面 随便拖置一个label并保存
回到vs界面保存并运行 成功执行
二、树莓派3B+安装Qt5
(一)安装
用命令行进行安装:
更新库文件
sudo apt-get update
sudo apt-get upgrade
sudo rpi-update
正式安装
sudo apt-get install qt5-default
sudo apt-get install qtcreator
(二)配置
打开Qt——>Tools——>Options
Compilers——>add——>gcc 配置如下
找到gcc的路径(/usr/bin/gcc)
ABI选择arm-linux-generic-elf-32bit
测试是否安装成功
gcc -v
g++ -v
配置Kits
Compiler 选择gcc
Debugger 设为System GDB at/usr/bin/gdb
配置完成
三、Qt+opencv图像显示程序
- qt配置opencv
新建项目
在.pro文件中添加代码(opencv的几个路径)
- 编写程序内容
Mainwindow.ui:
放置一个pushbutton,为他添加click()函数,编写代码
Main.cpp:
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
Mainwindow.cpp:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QLabel>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
}
void MainWindow::on_OpenImage_clicked()
{
image = cv::imread("p1.jpg");
cv::cvtColor(image, image, CV_RGB2RGBA);
QImage img = QImage((const unsigned char*)(image.data),
image.cols, image.rows, QImage::Format_RGB32);
QLabel *label = new QLabel(this);
label->move(210, 50);
label->setPixmap(QPixmap::fromImage(img));
label->resize(label->pixmap()->size());
label->show();
}
void MainWindow::on_pushButton_clicked()
{
}
Mainwindow.h:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QLabel>
#include <opencv2/opencv.hpp>
#include <opencv/cv.h>
#include <opencv2/core/core.hpp>
#include <opencv/highgui.h>
#include <opencv2/highgui/highgui.hpp>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void on_pushButton_clicked();
private:
Ui::MainWindow *ui;
cv::Mat image; //定义私有变量 image
cv::Mat result;//定义私有变量 result
private slots: //声明信号函数
void on_OpenImage_clicked();
};
#endif // MAINWINDOW_H
执行效果:
点击pushbutton显示图片