diff --git a/modules/tracker/rbt/include/visp3/rbt/vpRBTracker.h b/modules/tracker/rbt/include/visp3/rbt/vpRBTracker.h index 33a0f66884..c70cfc523f 100644 --- a/modules/tracker/rbt/include/visp3/rbt/vpRBTracker.h +++ b/modules/tracker/rbt/include/visp3/rbt/vpRBTracker.h @@ -163,6 +163,24 @@ class VISP_EXPORT vpRBTracker m_odometry = odometry; } + /*! + * Get verbosity mode. + * \return true when verbosity is enabled, false otherwise. + */ + bool getVerbose() + { + return m_verbose; + } + + /*! + * Enable/disable verbosity mode. + * \param verbose : When true verbose mode is enabled. When false verbosity is disabled. + */ + void setVerbose(bool verbose) + { + m_verbose = verbose; + } + #if defined(VISP_HAVE_NLOHMANN_JSON) void loadConfigurationFile(const std::string &filename); void loadConfiguration(const nlohmann::json &j); @@ -246,6 +264,7 @@ class VISP_EXPORT vpRBTracker unsigned m_imageHeight, m_imageWidth; //! Color and render image dimensions vpRBTrackerLogger m_logger; + bool m_verbose; std::shared_ptr m_mask; std::shared_ptr m_driftDetector; diff --git a/modules/tracker/rbt/src/core/vpRBTracker.cpp b/modules/tracker/rbt/src/core/vpRBTracker.cpp index 8b22cf5d23..ef7705852c 100644 --- a/modules/tracker/rbt/src/core/vpRBTracker.cpp +++ b/modules/tracker/rbt/src/core/vpRBTracker.cpp @@ -47,11 +47,11 @@ #include #include -#define VP_DEBUG_RB_TRACKER 1 - BEGIN_VISP_NAMESPACE -vpRBTracker::vpRBTracker() : m_firstIteration(true), m_trackers(0), m_lambda(1.0), m_vvsIterations(10), m_muInit(0.0), m_muIterFactor(0.5), m_renderer(m_rendererSettings), m_imageHeight(480), m_imageWidth(640) +vpRBTracker::vpRBTracker() : + m_firstIteration(true), m_trackers(0), m_lambda(1.0), m_vvsIterations(10), m_muInit(0.0), m_muIterFactor(0.5), + m_renderer(m_rendererSettings), m_imageHeight(480), m_imageWidth(640), m_verbose(false) { m_rendererSettings.setClippingDistance(0.01, 1.0); m_renderer.setRenderParameters(m_rendererSettings); @@ -393,9 +393,9 @@ void vpRBTracker::track(vpRBFeatureTrackerInput &input) m_driftDetector->update(m_previousFrame, m_currentFrame, m_cMo, m_cMoPrev); } m_logger.setDriftDetectionTime(m_logger.endTimer()); -#if VP_DEBUG_RB_TRACKER - std::cout << m_logger << std::endl; -#endif + if (m_verbose) { + std::cout << m_logger << std::endl; + } } void vpRBTracker::updateRender(vpRBFeatureTrackerInput &frame) @@ -457,12 +457,12 @@ void vpRBTracker::updateRender(vpRBFeatureTrackerInput &frame) m_imageHeight, m_imageWidth); } } -// #pragma omp section -// { -// vpImage renders.color; -// m_renderer.getRenderer()->getRender(renders.color); -// m_renderer.placeRendernto(renders.color, frame.renders.color, vpRGBa(0)); -// } + // #pragma omp section + // { + // vpImage renders.color; + // m_renderer.getRenderer()->getRender(renders.color); + // m_renderer.placeRendernto(renders.color, frame.renders.color, vpRGBa(0)); + // } } } @@ -496,11 +496,11 @@ std::vector vpRBTracker::extractSilhouettePoints( // double nx = cos(theta); // double ny = sin(theta); // const double Zn = Idepth[static_cast(round(n + ny * 1))][static_cast(round(m + nx * 2))]; -#if VP_DEBUG_RB_TRACKER - if (fabs(theta) > M_PI + 1e-6) { - throw vpException(vpException::badValue, "Theta expected to be in -Pi, Pi range but was not"); + if (m_verbose) { + if (fabs(theta) > M_PI + 1e-6) { + throw vpException(vpException::badValue, "Theta expected to be in -Pi, Pi range but was not"); + } } -#endif points.push_back(vpRBSilhouettePoint(n, m, norm, theta, Z)); // if (Zn > 0) { // theta = -theta; @@ -610,9 +610,13 @@ void vpRBTracker::loadConfigurationFile(const std::string &filename) loadConfiguration(settings); jsonFile.close(); } + void vpRBTracker::loadConfiguration(const nlohmann::json &j) { m_firstIteration = true; + const nlohmann::json verboseSettings = j.at("verbose"); + m_verbose = verboseSettings.value("enabled", m_verbose); + const nlohmann::json cameraSettings = j.at("camera"); m_cam = cameraSettings.at("intrinsics"); m_imageHeight = cameraSettings.value("height", m_imageHeight); diff --git a/tutorial/tracking/render-based/data/sequence1/dragon.json b/tutorial/tracking/render-based/data/sequence1/dragon.json index 7906f3ebf3..e6278460af 100644 --- a/tutorial/tracking/render-based/data/sequence1/dragon.json +++ b/tutorial/tracking/render-based/data/sequence1/dragon.json @@ -1,4 +1,7 @@ { + "verbose": { + "enabled": true + }, "camera": { "intrinsics": { "model": "perspectiveWithoutDistortion",