diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp index 4ca65ee..1fce754 100644 --- a/src/ui/mainwindow.cpp +++ b/src/ui/mainwindow.cpp @@ -20,6 +20,8 @@ #include #include #include +#include +#include #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()<>image; + } + catch(const cv::Exception& ex) + { + qDebug()<mainViewer->setImage(Camera::Image(image, 0)); + else + { + ui->mainViewer->setImage(Camera::Image(image, 0)); + } } }