在Qt Creator上新建一个项目。
右键新项目>>添加库…>>外部库>>选中库文件路径>>下一步,完成,添加到.pro文件中。
然后再在pro文件中手动输入下面代码:
本文福利,莬费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓
INCLUDEPATH += D:\opencv\build\include\
D:\opencv\build\include\opencv\
D:\opencv\build\include\opencv2\
当然每个人OpenCV的安装路径是不一样的,你要找到你的安装路径下。
然后举个例子吧。
.pro文件:
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
INCLUDEPATH += D:\opencv\build\include\
D:\opencv\build\include\opencv\
D:\opencv\build\include\opencv2\
win32:CONFIG(release, debug|release): LIBS += -LD:/opencv/build/x64/vc14/lib/ -lopencv_world342
else:win32:CONFIG(debug, debug|release): LIBS += -LD:/opencv/build/x64/vc14/lib/ -lopencv_world342d
else:unix: LIBS += -LD:/opencv/build/x64/vc14/lib/ -lopencv_world342
INCLUDEPATH += D:/opencv/build/x64/vc14
DEPENDPATH += D:/opencv/build/x64/vc14
SOURCES += \
main.cpp \
mainwindow.cpp
HEADERS += \
mainwindow.h
FORMS += \
mainwindow.ui
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.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QFileDialog>//文件对话框
#include <opencv2/core/core.hpp>//opencv相关的库文件
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);//explicit是显式的意思,构造函数,继承父类
~MainWindow();//析构函数
private slots://私有槽函数
void on_pushButton_clicked();//声明按键
void on_pushButton_2_clicked();
private:
Ui::MainWindow *ui;
Mat image;
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"//头文件
#include "ui_mainwindow.h"//ui界面头文件
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->pushButton_2->setEnabled(false);//初始按键2不能使用
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()//按键定义
{
//调用窗口打开文件
QString filename = QFileDialog::getOpenFileName(this,
tr("open image"),
".",
tr("Image file(*.png *.jpg *.bmp)"));
image = imread(filename.toLocal8Bit().data());
if(image.data) {
ui->pushButton_2->setEnabled(true);//按键2恢复
}
//将Mat图像转换为QImage图像,才能显示在label上
QImage img = QImage((const unsigned char*)(image.data),
image.cols, image.rows, QImage::Format_RGB888);//格式转换
//设定图像大小自适应label窗口的大小
img = img.scaled(ui->label->size(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
ui->label->setPixmap(QPixmap::fromImage(img));
}
void MainWindow::on_pushButton_2_clicked()
{
flip(image, image, 1);
QImage img = QImage((const unsigned char*)(image.data),
image.cols, image.rows, QImage::Format_RGB888);
img = img.scaled(ui->label->size(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
ui->label->clear();//清除窗口
ui->label->setPixmap(QPixmap::fromImage(img));//显示其它图像
}
mainwindow.ui
然后就可以运行,测试一下代码了。。
本文福利,莬费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓