mainny ui improcements

This commit is contained in:
2021-06-17 18:39:47 +02:00
parent 50777fe056
commit 86ec50575b
25 changed files with 819 additions and 264 deletions

View File

@ -3,6 +3,7 @@
#include <QDebug>
#include <QMessageBox>
#include <uvosled.h>
#include <QFileDialog>
#include "../profile.h"
@ -17,9 +18,62 @@ MainWindow::MainWindow(QWidget *parent)
connect(ui->actionProfile, &QAction::triggered, [this](bool checked){(void)checked; sigEditProfiles();});
connect(ui->comboBox, &QComboBox::currentTextChanged, this, &MainWindow::sigProfile);
connect(ui->pushButtonCapture, &QPushButton::clicked, this, &MainWindow::sigCapture);
connect(ui->mainViewer, &CvImageViewer::sigValue, this, &MainWindow::setImageValue);
connect(ui->actionOpen, &QAction::triggered, [this](bool checked){(void)checked; openImage();});
connect(ui->actionSave_2, &QAction::triggered, [this](bool checked){(void)checked; saveImage();});
refreshProfiles();
}
void MainWindow::setImageValue(size_t x, size_t y, double value)
{
ui->lcdNumber_3->display((double)x);
ui->lcdNumber_2->display((double)y);
ui->lcdNumber->display(value);
}
void MainWindow::saveImage()
{
if(!ui->mainViewer->getImage().data)
{
QMessageBox::warning(this, "No image", "There is no image to save");
return;
}
QString fileName = QFileDialog::getSaveFileName(this, "Save Image", "./", "*.mat");
if(!fileName.isEmpty())
{
QStringList tokens = fileName.split('.');
if(tokens.back() != "mat")
fileName.append(".mat");
cv::FileStorage matf(fileName.toStdString(), cv::FileStorage::WRITE);
matf<<"image"<<ui->mainViewer->getImage();
matf.release();
}
}
void MainWindow::openImage()
{
QString fileName = QFileDialog::getOpenFileName(this, "Open Image", "./", "*.mat");
if(!fileName.isEmpty())
{
cv::Mat image;
cv::FileStorage matf(fileName.toStdString(), cv::FileStorage::READ);
matf["image"]>>image;
if(matf.isOpened() && (!image.data || image.type() != CV_32FC1))
{
image.release();
QMessageBox::warning(this, "Invalid file", "File selected dose not contain a valid lightmap");
}
else if(!image.data)
{
QMessageBox::warning(this, "Can no open", "Can not open file selected");
}
matf.release();
ui->mainViewer->setImage(Camera::Image(image, 0));
}
}
void MainWindow::addCamera(std::shared_ptr<Camera> camera)
{
viewers_.push_back(new CvImageViewer(this, camera->id()));
@ -28,6 +82,11 @@ void MainWindow::addCamera(std::shared_ptr<Camera> camera)
ui->viewerLayout->addWidget(viewers_.back());
}
void MainWindow::statusMsg(QString msg)
{
ui->statusbar->showMessage(msg);
}
void MainWindow::removeCamera(std::shared_ptr<Camera> camera)
{
for(size_t i = 0; i < viewers_.size(); ++i)
@ -93,4 +152,3 @@ MainWindow::~MainWindow()
delete viewer;
delete ui;
}