上篇文章详细描述了VS2015+OpenCV4.5.2环境搭建,不在描述,本文重点描述QT+OpenCV应用。
1.QT5.9.1安装
1.qt5.9.1安装默认安装,切记选择支持msvc2015_64.
2.qt-vs-tools-msvc2015-2.1.1.vsix工具安装。可从网上下载。
3.qt配置:选择64支持包。
Qt VS Tools---->Qt Options---> Qt Versions 添加5.9.1 (64位)
2. 创建Qt项目:
1.在VS中创建QT GUI项目如:
2.在属性中配置64,添加openCV 目录、库目录、调试库。可参考上篇文档中配置。
3.在Qt Designer中进行界面绘制:
4.设置信号槽:
Openfig_clicked()
Porgress_clicked()
关联信号:
5. 在.h中添加如下:
#include <QtWidgets/QMainWindow>
#include "ui_OpenCVQtGui.h"
#include <QFileDialog>
#include <QLabel>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/imgproc/types_c.h>
class OpenCVQtGui : public QMainWindow
{
Q_OBJECT
public:
OpenCVQtGui(QWidget *parent = Q_NULLPTR);
void salt(cv::Mat &image, int n);
public slots:
void OpenFig_clicked();
void Progress_clicked();
void Salt_progress_clicked();
private:
Ui::OpenCVQtGuiClass ui;
cv::Mat image;
};
在.CPP中添加:
#include "OpenCVQtGui.h"
OpenCVQtGui::OpenCVQtGui(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
}
void OpenCVQtGui::OpenFig_clicked()
{
QString fileName = QFileDialog::getOpenFileName(this, tr("Open Image"),
".", tr("Image Files(*.png *.jpg *.jeg *.bmp)"));
if (fileName.isEmpty())
{
}
else
{
image = cv::imread(fileName.toStdString());
// cv::namedWindow("Original Image");
//
// cv::imshow("Original Image", image);
cvtColor(image, image, CV_BGR2RGB);
QImage img = QImage((const unsigned char*)(image.data), image.cols, image.rows, QImage::Format_RGB888);
ui.label->setPixmap(QPixmap::fromImage(img));
ui.label->resize(QSize(img.width(), img.height()));
}
}
void OpenCVQtGui::Progress_clicked()
{
flip(image, image, 2);//反转函数 0 上下反转;整数,水平发转;负数,水平垂直均反转
QImage img1 = QImage((const unsigned char*)(image.data), image.cols, image.rows, QImage::Format_RGB888);
ui.label_2->setPixmap(QPixmap::fromImage(img1));
ui.label_2->resize(QSize(img1.width(), img1.height()));
}
6.编译---运行: