From 76f937ad0cfdce365a11629495ad3b76c2cddd30 Mon Sep 17 00:00:00 2001 From: Sebastian Hahta <joseha@utu.fi> Date: Mon, 27 Jul 2020 11:06:43 +0300 Subject: [PATCH] rectification visualization fix --- .../src/modules/calibration/intrinsic.cpp | 2 +- .../src/views/calibration/extrinsicview.cpp | 24 ++++++++++++++++--- .../src/views/calibration/extrinsicview.hpp | 2 ++ .../src/views/calibration/intrinsicview.cpp | 2 +- 4 files changed, 25 insertions(+), 5 deletions(-) diff --git a/applications/gui2/src/modules/calibration/intrinsic.cpp b/applications/gui2/src/modules/calibration/intrinsic.cpp index ab9b78486..da9ff2199 100644 --- a/applications/gui2/src/modules/calibration/intrinsic.cpp +++ b/applications/gui2/src/modules/calibration/intrinsic.cpp @@ -246,7 +246,7 @@ void IntrinsicCalibration::run() { state_->flags, term); state_->calib = CalibrationData::Intrinsic(K, distCoeffs, size); - state_->calib.sensorSize = ssize; // TODO: save somewhere else + state_->calib.sensorSize = ssize; state_->calibrated = true; } catch (std::exception &e) { diff --git a/applications/gui2/src/views/calibration/extrinsicview.cpp b/applications/gui2/src/views/calibration/extrinsicview.cpp index d403d7678..606464e87 100644 --- a/applications/gui2/src/views/calibration/extrinsicview.cpp +++ b/applications/gui2/src/views/calibration/extrinsicview.cpp @@ -165,6 +165,7 @@ private: nanogui::Button* bsave_; nanogui::Button* bupload_; + nanogui::Button* bapply_; nanogui::Button* bcalibrate_; nanogui::Button* bpause_; nanogui::Button* bresults_; @@ -204,6 +205,16 @@ ExtrinsicCalibrationView::ControlWindow::ControlWindow(nanogui::Widget* parent, bupload_->setTextColor(nanogui::Color(32, 192, 32, 255)); }); + bapply_ = new nanogui::Button(buttons, ""); + bapply_->setFixedWidth(40); + bapply_->setTooltip("Rectify stereo images"); + + bapply_->setFlags(nanogui::Button::Flags::ToggleButton); + bapply_->setPushed(view_->rectify()); + bapply_->setChangeCallback([button = bapply_, view = view_](bool v){ + view->setRectify(v); + }); + bresults_ = new nanogui::Button(buttons, "Show Calibration"); //bresults_->setEnabled(ctrl_->calib().calibrated()); bresults_->setCallback([view = view_, button = bresults_]{ @@ -224,8 +235,15 @@ ExtrinsicCalibrationView::ControlWindow::ControlWindow(nanogui::Widget* parent, } void ExtrinsicCalibrationView::ControlWindow::draw(NVGcontext* ctx) { - if (ctrl_->capturing()) { bpause_->setCaption("Pause"); } - else { bpause_->setCaption("Continue"); } + if (ctrl_->capturing()) { + bpause_->setCaption("Pause"); + view_->setRectify(false); + } + else { + bpause_->setCaption("Continue"); + } + bapply_->setIcon(view_->rectify() ? ENTYPO_ICON_EYE : ENTYPO_ICON_EYE_WITH_LINE); + bapply_->setPushed(view_->rectify()); //bcalibrate_->setEnabled(ctrl_->calib().nFrames() > 0); //bresults_->setEnabled(ctrl_->calib().calibrated()); FixedWindow::draw(ctx); @@ -430,7 +448,7 @@ ExtrinsicCalibrationView::ExtrinsicCalibrationView(Screen* widget, ExtrinsicCali frames_ = new nanogui::Widget(this); draw_number_ = false; - rectify_ = true; + rectify_ = false; frames_->setLayout(new nanogui::BoxLayout (nanogui::Orientation::Horizontal, nanogui::Alignment::Maximum, 0, 0)); diff --git a/applications/gui2/src/views/calibration/extrinsicview.hpp b/applications/gui2/src/views/calibration/extrinsicview.hpp index 6a5825ec5..10066d9c7 100644 --- a/applications/gui2/src/views/calibration/extrinsicview.hpp +++ b/applications/gui2/src/views/calibration/extrinsicview.hpp @@ -65,6 +65,8 @@ public: virtual void draw(NVGcontext *ctx) override; virtual void performLayout(NVGcontext *ctx) override; + bool rectify() { return rectify_; }; + void setRectify(bool v) { rectify_ = v; }; void setMode(Mode m); protected: diff --git a/applications/gui2/src/views/calibration/intrinsicview.cpp b/applications/gui2/src/views/calibration/intrinsicview.cpp index be714ab20..a8708183c 100644 --- a/applications/gui2/src/views/calibration/intrinsicview.cpp +++ b/applications/gui2/src/views/calibration/intrinsicview.cpp @@ -356,7 +356,7 @@ void IntrinsicCalibrationView::ControlWindow::draw(NVGcontext* ctx) { bresults_->setEnabled(ctrl_->calibrated()); bsave_->setEnabled(ctrl_->calibrated()); bapply_->setEnabled(ctrl_->calibrated()); - bapply_->setIcon(view_->undistort() ? ENTYPO_ICON_EYE : ENTYPO_ICON_EYE); + bapply_->setIcon(view_->undistort() ? ENTYPO_ICON_EYE : ENTYPO_ICON_EYE_WITH_LINE); bapply_->setPushed(view_->undistort()); updateCount(); FixedWindow::draw(ctx); -- GitLab