From a70399813a10a148120c732ca22699e7b7aeca8c Mon Sep 17 00:00:00 2001 From: Nicolas Pope <nwpope@utu.fi> Date: Tue, 3 Mar 2020 10:35:21 +0200 Subject: [PATCH] Fix for runtime aruco config --- components/operators/src/aruco.cpp | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/components/operators/src/aruco.cpp b/components/operators/src/aruco.cpp index 18beb6638..b8f54eb4c 100644 --- a/components/operators/src/aruco.cpp +++ b/components/operators/src/aruco.cpp @@ -1,6 +1,9 @@ #include "ftl/operators/detectandtrack.hpp" #include "ftl/codecs/transformation.hpp" +#define LOGURU_REPLACE_GLOG 1 +#include <loguru.hpp> + using ftl::operators::ArUco; using ftl::rgbd::Frame; @@ -18,18 +21,22 @@ ArUco::ArUco(ftl::Configurable *cfg) : ftl::operators::Operator(cfg) { params_ = cv::aruco::DetectorParameters::create(); debug_ = cfg->value("debug", false); - estimate_pose_ = cfg->value("estimate_pose", false); - auto marker_size = cfg->get<float>("marker_size"); - if (!marker_size || (*marker_size < 0.0f)) { - marker_size_ = 0.0; - estimate_pose_ = false; - } - else { - marker_size_ = *marker_size; - } + //estimate_pose_ = cfg->value("estimate_pose", false); + //auto marker_size = cfg->get<float>("marker_size"); + //if (!marker_size || (*marker_size <= 0.0f)) { + // marker_size_ = 0.1f; + // estimate_pose_ = false; + //} + //else { + // marker_size_ = *marker_size; + //} channel_in_ = Channel::Colour; channel_out_ = Channel::Transforms; + + cfg->on("dictionary", [this,cfg](const ftl::config::Event &e) { + dictionary_ = cv::aruco::getPredefinedDictionary(cfg->value("dictionary", 0)); + }); } bool ArUco::apply(Frame &in, Frame &out, cudaStream_t stream) { @@ -38,6 +45,10 @@ bool ArUco::apply(Frame &in, Frame &out, cudaStream_t stream) { Frame *inptr = ∈ Frame *outptr = &out; + estimate_pose_ = config()->value("estimate_pose", false); + debug_ = config()->value("debug", false); + marker_size_ = config()->value("marker_size",0.1f); + job_ = std::move(ftl::pool.push([this,inptr,outptr,stream](int id) { Frame &in = *inptr; Frame &out = *outptr; -- GitLab