allow saveing main viewer image as png
This commit is contained in:
		
							parent
							
								
									6354b0379d
								
							
						
					
					
						commit
						5b07c96ce7
					
				
					 1 changed files with 32 additions and 16 deletions
				
			
		| 
						 | 
				
			
			@ -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));
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue