Skip to content

Commit

Permalink
Introduce getter/setter/json serialization to handle a verbose mode
Browse files Browse the repository at this point in the history
  • Loading branch information
fspindle committed Oct 16, 2024
1 parent 600bfd2 commit 02b4911
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 16 deletions.
19 changes: 19 additions & 0 deletions modules/tracker/rbt/include/visp3/rbt/vpRBTracker.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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<vpObjectMask> m_mask;
std::shared_ptr<vpRBDriftDetector> m_driftDetector;
Expand Down
36 changes: 20 additions & 16 deletions modules/tracker/rbt/src/core/vpRBTracker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,11 @@
#include <visp3/rbt/vpRBVisualOdometry.h>
#include <visp3/rbt/vpRBInitializationHelper.h>

#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);
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -457,12 +457,12 @@ void vpRBTracker::updateRender(vpRBFeatureTrackerInput &frame)
m_imageHeight, m_imageWidth);
}
}
// #pragma omp section
// {
// vpImage<vpRGBa> renders.color;
// m_renderer.getRenderer<vpPanda3DRGBRenderer>()->getRender(renders.color);
// m_renderer.placeRendernto(renders.color, frame.renders.color, vpRGBa(0));
// }
// #pragma omp section
// {
// vpImage<vpRGBa> renders.color;
// m_renderer.getRenderer<vpPanda3DRGBRenderer>()->getRender(renders.color);
// m_renderer.placeRendernto(renders.color, frame.renders.color, vpRGBa(0));
// }
}

}
Expand Down Expand Up @@ -496,11 +496,11 @@ std::vector<vpRBSilhouettePoint> vpRBTracker::extractSilhouettePoints(
// double nx = cos(theta);
// double ny = sin(theta);
// const double Zn = Idepth[static_cast<unsigned int>(round(n + ny * 1))][static_cast<unsigned int>(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;
Expand Down Expand Up @@ -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);
Expand Down
3 changes: 3 additions & 0 deletions tutorial/tracking/render-based/data/sequence1/dragon.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
{
"verbose": {
"enabled": true
},
"camera": {
"intrinsics": {
"model": "perspectiveWithoutDistortion",
Expand Down

0 comments on commit 02b4911

Please sign in to comment.