From c1bc39f4df7a5cff931e812248f5617dde3d0b02 Mon Sep 17 00:00:00 2001 From: Nicolas Pope <nwpope@utu.fi> Date: Fri, 15 May 2020 11:28:12 +0300 Subject: [PATCH] Fix for 2D snapshot --- applications/gui/src/camera.cpp | 19 +++++++++++++++++-- applications/gui/src/camera.hpp | 2 ++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/applications/gui/src/camera.cpp b/applications/gui/src/camera.cpp index f12e38dbb..b735a5ea3 100644 --- a/applications/gui/src/camera.cpp +++ b/applications/gui/src/camera.cpp @@ -437,6 +437,19 @@ void ftl::gui::Camera::_draw(std::vector<ftl::rgbd::FrameSet*> &fss) { record_sender_->post(fs2); record_stream_->select(0, Channels<0>(Channel::Colour)); f.swapTo(Channels<0>(Channel::Colour), frame_); + } else if (do_snapshot_) { + do_snapshot_ = false; + cv::Mat flipped; + cv::Mat im1; + + frame_.get<cv::cuda::GpuMat>(Channel::Colour).download(im1); + + { + //UNIQUE_LOCK(mutex_, lk); + cv::flip(im1, flipped, 0); + } + cv::cvtColor(flipped, flipped, cv::COLOR_BGRA2BGR); + cv::imwrite(snapshot_filename_, flipped); } } @@ -775,14 +788,16 @@ const void ftl::gui::Camera::captureFrame() { } void ftl::gui::Camera::snapshot(const std::string &filename) { - cv::Mat flipped; + /*cv::Mat flipped; { UNIQUE_LOCK(mutex_, lk); //cv::flip(im1_, flipped, 0); } cv::cvtColor(flipped, flipped, cv::COLOR_BGRA2BGR); - cv::imwrite(filename, flipped); + cv::imwrite(filename, flipped);*/ + snapshot_filename_ = filename; + do_snapshot_ = true; } void ftl::gui::Camera::startVideoRecording(const std::string &filename) { diff --git a/applications/gui/src/camera.hpp b/applications/gui/src/camera.hpp index 764a07b95..be7b21476 100644 --- a/applications/gui/src/camera.hpp +++ b/applications/gui/src/camera.hpp @@ -147,6 +147,8 @@ class Camera { float lerpSpeed_; bool sdepth_; bool pause_; + bool do_snapshot_ = false; + std::string snapshot_filename_; ftl::codecs::Channel channel_; ftl::codecs::Channels<0> channels_; -- GitLab