From 705f4337e4eb07ffc6750f407169f056e8b114e4 Mon Sep 17 00:00:00 2001 From: matlabbe Date: Sun, 17 Jul 2016 17:44:12 -0400 Subject: [PATCH] Fixed #42 --- guilib/src/DatabaseViewer.cpp | 24 +++++++++++++++++------- guilib/src/MainWindow.cpp | 24 +++++++++++++++++------- 2 files changed, 34 insertions(+), 14 deletions(-) diff --git a/guilib/src/DatabaseViewer.cpp b/guilib/src/DatabaseViewer.cpp index 977a72a2..c408b0ba 100644 --- a/guilib/src/DatabaseViewer.cpp +++ b/guilib/src/DatabaseViewer.cpp @@ -950,6 +950,16 @@ void DatabaseViewer::extractImages() return; } + QStringList formats; + formats.push_back("jpg"); + formats.push_back("png"); + bool ok; + QString ext = QInputDialog::getItem(this, tr("Which RGB format?"), tr("Format:"), formats, 0, false, &ok); + if(!ok) + { + return; + } + QString path = QFileDialog::getExistingDirectory(this, tr("Select directory where to save images..."), QDir::homePath()); if(!path.isNull()) { @@ -1045,20 +1055,20 @@ void DatabaseViewer::extractImages() data.uncompressData(); if(!data.imageRaw().empty() && !data.rightRaw().empty()) { - cv::imwrite(QString("%1/left/%2.jpg").arg(path).arg(id).toStdString(), data.imageRaw()); - cv::imwrite(QString("%1/right/%2.jpg").arg(path).arg(id).toStdString(), data.rightRaw()); - UINFO(QString("Saved left/%1.jpg and right/%1.jpg").arg(id).toStdString().c_str()); + cv::imwrite(QString("%1/left/%2.%3").arg(path).arg(id).arg(ext).toStdString(), data.imageRaw()); + cv::imwrite(QString("%1/right/%2.%3").arg(path).arg(id).arg(ext).toStdString(), data.rightRaw()); + UINFO(QString("Saved left/%1.%2 and right/%1.%2").arg(id).arg(ext).toStdString().c_str()); } else if(!data.imageRaw().empty() && !data.depthRaw().empty()) { - cv::imwrite(QString("%1/rgb/%2.jpg").arg(path).arg(id).toStdString(), data.imageRaw()); + cv::imwrite(QString("%1/rgb/%2.%3").arg(path).arg(id).arg(ext).toStdString(), data.imageRaw()); cv::imwrite(QString("%1/depth/%2.png").arg(path).arg(id).toStdString(), data.depthRaw()); - UINFO(QString("Saved rgb/%1.jpg and depth/%1.png").arg(id).toStdString().c_str()); + UINFO(QString("Saved rgb/%1.%2 and depth/%1.png").arg(id).arg(ext).toStdString().c_str()); } else if(!data.imageRaw().empty()) { - cv::imwrite(QString("%1/%2.jpg").arg(path).arg(id).toStdString(), data.imageRaw()); - UINFO(QString("Saved %1.jpg").arg(id).toStdString().c_str()); + cv::imwrite(QString("%1/%2.%3").arg(path).arg(id).arg(ext).toStdString(), data.imageRaw()); + UINFO(QString("Saved %1.%2").arg(id).arg(ext).toStdString().c_str()); } } } diff --git a/guilib/src/MainWindow.cpp b/guilib/src/MainWindow.cpp index 857a69bc..4ae387e7 100644 --- a/guilib/src/MainWindow.cpp +++ b/guilib/src/MainWindow.cpp @@ -5484,6 +5484,16 @@ void MainWindow::exportImages() return; } + QStringList formats; + formats.push_back("jpg"); + formats.push_back("png"); + bool ok; + QString ext = QInputDialog::getItem(this, tr("Which RGB format?"), tr("Format:"), formats, 0, false, &ok); + if(!ok) + { + return; + } + QString path = QFileDialog::getExistingDirectory(this, tr("Select directory where to save images..."), this->getWorkingDirectory()); if(!path.isNull()) { @@ -5587,20 +5597,20 @@ void MainWindow::exportImages() bool warn = false; if(!data.imageRaw().empty() && !data.rightRaw().empty()) { - cv::imwrite(QString("%1/left/%2.jpg").arg(path).arg(id).toStdString(), data.imageRaw()); - cv::imwrite(QString("%1/right/%2.jpg").arg(path).arg(id).toStdString(), data.rightRaw()); - info = tr("Saved left/%1.jpg and right/%1.jpg.").arg(id); + cv::imwrite(QString("%1/left/%2.%3").arg(path).arg(id).arg(ext).toStdString(), data.imageRaw()); + cv::imwrite(QString("%1/right/%2.%3").arg(path).arg(id).arg(ext).toStdString(), data.rightRaw()); + info = tr("Saved left/%1.%2 and right/%1.%2.").arg(id).arg(ext); } else if(!data.imageRaw().empty() && !data.depthRaw().empty()) { - cv::imwrite(QString("%1/rgb/%2.jpg").arg(path).arg(id).toStdString(), data.imageRaw()); + cv::imwrite(QString("%1/rgb/%2.%3").arg(path).arg(id).arg(ext).toStdString(), data.imageRaw()); cv::imwrite(QString("%1/depth/%2.png").arg(path).arg(id).toStdString(), data.depthRaw()); - info = tr("Saved rgb/%1.jpg and depth/%1.png.").arg(id); + info = tr("Saved rgb/%1.%2 and depth/%1.png.").arg(id).arg(ext); } else if(!data.imageRaw().empty()) { - cv::imwrite(QString("%1/%2.jpg").arg(path).arg(id).toStdString(), data.imageRaw()); - info = tr("Saved %1.jpg.").arg(id); + cv::imwrite(QString("%1/%2.%3").arg(path).arg(id).arg(ext).toStdString(), data.imageRaw()); + info = tr("Saved %1.%2.").arg(id).arg(ext); } else {