diff --git a/renderer/cpp/include/ftl/display.hpp b/renderer/cpp/include/ftl/display.hpp index c60d5fc052bf2f4784698a2d123f48b6c77ef1a4..299009ed96211def05090127fcebcc7c661bed4c 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 acedcbe37df86adf66099b14477898a9fd7c9f6a..671fc32a78bd040862a77941822bb9959920219b 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 34a507a9046b698a6220b9ac2c9074417bbf5e44..f26bea1d31c571dbb9b3fc133add138e0e59df3e 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 c0524da031957e2bbaddf8ed9ad9800cb1a1ac31..49d3f43dbf0fa1bceda2b64b42d1b67d7f88bb83 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