From 9b7ccdc20ddfbccc07bcf7f8d4787b7aa09f70e5 Mon Sep 17 00:00:00 2001 From: Nicolas Pope <nwpope@utu.fi> Date: Mon, 20 May 2019 10:45:16 +0300 Subject: [PATCH] Config for cam res, crosshair and display right --- renderer/cpp/include/ftl/display.hpp | 3 ++- renderer/cpp/src/display.cpp | 17 +++++++++++++++-- vision/src/local.cpp | 8 ++++---- vision/src/main.cpp | 2 +- 4 files changed, 22 insertions(+), 8 deletions(-) diff --git a/renderer/cpp/include/ftl/display.hpp b/renderer/cpp/include/ftl/display.hpp index c60d5fc05..299009ed9 100644 --- a/renderer/cpp/include/ftl/display.hpp +++ b/renderer/cpp/include/ftl/display.hpp @@ -33,7 +33,8 @@ class Display { explicit Display(nlohmann::json &config, std::string name); ~Display(); - bool render(const cv::Mat &rgb, const cv::Mat &depth, const cv::Mat &q); + inline bool render(const cv::Mat &rgb, const cv::Mat &depth, const cv::Mat &q) { render(rgb, cv::Mat(), q); } + bool render(const cv::Mat &rgb, const cv::Mat &rgbr, const cv::Mat &depth, const cv::Mat &q); #if defined HAVE_PCL bool render(pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr); diff --git a/renderer/cpp/src/display.cpp b/renderer/cpp/src/display.cpp index acedcbe37..671fc32a7 100644 --- a/renderer/cpp/src/display.cpp +++ b/renderer/cpp/src/display.cpp @@ -77,7 +77,7 @@ Display::~Display() { #endif // HAVE_VIZ } -bool Display::render(const cv::Mat &rgb, const cv::Mat &depth, const cv::Mat &q) { +bool Display::render(const cv::Mat &rgb, const cv::Mat &rgbr, const cv::Mat &depth, const cv::Mat &q) { Mat idepth; if (config_["points"] && q.rows != 0) { @@ -117,7 +117,20 @@ bool Display::render(const cv::Mat &rgb, const cv::Mat &depth, const cv::Mat &q) } if (config_["left"]) { - cv::imshow("RGB: " + name_, rgb); + if (config_["crosshair"]) { + cv::line(rgb, cv::Point(0, rgb.rows/2), cv::Point(rgb.cols-1, rgb.rows/2), cv::Scalar(0,0,255), 1); + cv::line(rgb, cv::Point(rgb.cols/2, 0), cv::Point(rgb.cols/2, rgb.rows-1), cv::Scalar(0,0,255), 1); + } + cv::namedWindow("Left: " + name_, cv::WINDOW_KEEPRATIO); + cv::imshow("Left: " + name_, rgb); + } + if (config_["right"]) { + if (config_["crosshair"]) { + cv::line(rgbr, cv::Point(0, rgbr.rows/2), cv::Point(rgbr.cols-1, rgbr.rows/2), cv::Scalar(0,0,255), 1); + cv::line(rgbr, cv::Point(rgbr.cols/2, 0), cv::Point(rgbr.cols/2, rgbr.rows-1), cv::Scalar(0,0,255), 1); + } + cv::namedWindow("Right: " + name_, cv::WINDOW_KEEPRATIO); + cv::imshow("Right: " + name_, rgbr); } if (config_["depth"]) { diff --git a/vision/src/local.cpp b/vision/src/local.cpp index 34a507a90..f26bea1d3 100644 --- a/vision/src/local.cpp +++ b/vision/src/local.cpp @@ -58,10 +58,10 @@ LocalSource::LocalSource(nlohmann::json &config) stereo_ = false; LOG(WARNING) << "Not able to find second camera for stereo"; } else { - camera_a_->set(cv::CAP_PROP_FRAME_WIDTH,1280); - camera_a_->set(cv::CAP_PROP_FRAME_HEIGHT,720); - camera_b_->set(cv::CAP_PROP_FRAME_WIDTH,1280); - camera_b_->set(cv::CAP_PROP_FRAME_HEIGHT,720); + camera_a_->set(cv::CAP_PROP_FRAME_WIDTH,(int)config["width"]); + camera_a_->set(cv::CAP_PROP_FRAME_HEIGHT,(int)config["height"]); + camera_b_->set(cv::CAP_PROP_FRAME_WIDTH,(int)config["width"]); + camera_b_->set(cv::CAP_PROP_FRAME_HEIGHT,(int)config["height"]); Mat frame; camera_a_->grab(); diff --git a/vision/src/main.cpp b/vision/src/main.cpp index c0524da03..49d3f43db 100644 --- a/vision/src/main.cpp +++ b/vision/src/main.cpp @@ -184,7 +184,7 @@ static void run(const string &file) { }); // Send RGB+Depth images for local rendering - if (pl.rows > 0) display.render(pl, pdisp, Q_32F); + if (pl.rows > 0) display.render(pl, r, pdisp, Q_32F); display.wait(1); // Wait for both pipelines to complete -- GitLab