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 <QMessageBox>
#include <uvosled.h> #include <uvosled.h>
#include <QFileDialog> #include <QFileDialog>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/imgproc.hpp>
#include "../profile.h" #include "../profile.h"
@ -86,10 +88,20 @@ void MainWindow::saveImage()
void MainWindow::openImage() 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()) if(!fileName.isEmpty())
{ {
cv::Mat image; cv::Mat image;
QStringList tokens = fileName.split('.');
if(tokens.back() == "png")
{
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);
}
else
{
cv::FileStorage matf(fileName.toStdString(), cv::FileStorage::READ); cv::FileStorage matf(fileName.toStdString(), cv::FileStorage::READ);
try try
{ {
@ -107,14 +119,18 @@ void MainWindow::openImage()
image.release(); image.release();
QMessageBox::warning(this, "Invalid file", "File selected dose not contain a valid image"); QMessageBox::warning(this, "Invalid file", "File selected dose not contain a valid image");
} }
else if(!image.data) matf.release();
}
if(!image.data)
{ {
QMessageBox::warning(this, "Can no open", "Can not open file selected"); QMessageBox::warning(this, "Can no open", "Can not open file selected");
} }
matf.release(); else
{
ui->mainViewer->setImage(Camera::Image(image, 0)); ui->mainViewer->setImage(Camera::Image(image, 0));
} }
} }
}
void MainWindow::enableCapture(bool enable) void MainWindow::enableCapture(bool enable)
{ {