allow saveing main viewer image as png

This commit is contained in:
2021-07-26 10:29:13 +02:00
parent 6354b0379d
commit 5b07c96ce7

View File

@ -20,6 +20,8 @@
#include <QMessageBox>
#include <uvosled.h>
#include <QFileDialog>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/imgproc.hpp>
#include "../profile.h"
@ -86,33 +88,47 @@ void MainWindow::saveImage()
void MainWindow::openImage()
{
QString fileName = QFileDialog::getOpenFileName(this, "Open Image", lastSavedPath_, "*.mat");
QString fileName = QFileDialog::getOpenFileName(this, "Open Image", lastSavedPath_, "*.mat *.png");
if(!fileName.isEmpty())
{
cv::Mat image;
cv::FileStorage matf(fileName.toStdString(), cv::FileStorage::READ);
try
QStringList tokens = fileName.split('.');
if(tokens.back() == "png")
{
matf["image"]>>image;
image = cv::imread(fileName.toStdString());
if(image.data && image.channels() == 3)
cv::cvtColor(image, image, cv::COLOR_BGR2GRAY);
image.convertTo(image, CV_32FC1, 1.0/255.0, 0);
}
catch(const cv::Exception& ex)
else
{
qDebug()<<ex.what();
QMessageBox::warning(this, "Invalid file", "File selected dose not contain a valid image");
return;
}
cv::FileStorage matf(fileName.toStdString(), cv::FileStorage::READ);
try
{
matf["image"]>>image;
}
catch(const cv::Exception& ex)
{
qDebug()<<ex.what();
QMessageBox::warning(this, "Invalid file", "File selected dose not contain a valid image");
return;
}
if(matf.isOpened() && (!image.data || image.type() != CV_32FC1))
{
image.release();
QMessageBox::warning(this, "Invalid file", "File selected dose not contain a valid image");
if(matf.isOpened() && (!image.data || image.type() != CV_32FC1))
{
image.release();
QMessageBox::warning(this, "Invalid file", "File selected dose not contain a valid image");
}
matf.release();
}
else if(!image.data)
if(!image.data)
{
QMessageBox::warning(this, "Can no open", "Can not open file selected");
}
matf.release();
ui->mainViewer->setImage(Camera::Image(image, 0));
else
{
ui->mainViewer->setImage(Camera::Image(image, 0));
}
}
}