新建界面,添加一个滑动条QSlider,值范围为1-255。
代码:
mainWindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include "cv2qt.h"
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
Ui::MainWindow *ui;
cv::Mat src;
cv::Mat srcGray;
CV2Qt cv2qt;
private slots:
void on_horizontalSlider_valueChanged(int value);
};
#endif // MAINWINDOW_H
mainWindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
src = cv::imread("D:/pic/lena.jpg");
ui->label->setPixmap(cv2qt.cvMatToQPixmap(src));
cv::cvtColor(src, srcGray, cv::COLOR_BGR2GRAY);
if(srcGray.empty())
return;
ui->horizontalSlider->setValue(120);
cv::Mat tmp;
cv::threshold(srcGray, tmp, 120., 255., cv::THRESH_BINARY);
ui->label_2->setPixmap(cv2qt.cvMatToQPixmap(tmp));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_horizontalSlider_valueChanged(int value)
{
qDebug() << "value: " << value;
if(srcGray.empty())
return;
cv::Mat tmp;
cv::threshold(srcGray, tmp, double(value), 255., cv::THRESH_BINARY);
ui->label_2->setPixmap(cv2qt.cvMatToQPixmap(tmp));
}
运行结果:
多谢,亲爱的美美。