ImFusion SDK 4.3
MultiSensorCalibration Class Reference

#include <RGBD/Include/ImFusion/RGBD/MultiSensorCalibration.h>

Provides functionality for external calibration of multiple RGB-D sensors using markers. More...

Detailed Description

Provides functionality for external calibration of multiple RGB-D sensors using markers.

This class estimates the spatial relationship between sensors by detecting markers in color and depth images and computing the corresponding transformations.

MultiSensorCalibration supports marker-based pose estimation, relative sensor calibration, and marker area computation.

Typical usage:

MultiSensorCalibration calib(numSensors, depthK, colorK, depthToColorT, markerConfig);
std::vector<TypedImage<unsigned char>*> colorImgs; // Needs to be filled with color images from all sensors
std::vector<TypedImage<float>*> depthImgs; // Needs to be filled with depth images from all sensors
bool success = calib.getSensorPose(colorImgs, depthImgs, T, markerArea);
MultiSensorCalibration(int sensors, const std::vector< mat3 > &depthK, const std::vector< mat3 > &colorK, const std::vector< mat4 > &depthToColorT, const MarkerConfiguration &config)
Constructs a calibration object for multiple sensors.
Note
  • Marker configuration must be provided.
  • Intrinsic and extrinsic parameters for all sensors are required.
  • Not thread-safe.
See also
MarkerConfiguration, TypedImage

Public Member Functions

 MultiSensorCalibration (int sensors, const std::vector< mat3 > &depthK, const std::vector< mat3 > &colorK, const std::vector< mat4 > &depthToColorT, const MarkerConfiguration &config)
 Constructs a calibration object for multiple sensors.
 
bool getSensorPose (std::vector< TypedImage< unsigned char > * > imgColor, std::vector< TypedImage< float > * > imgDepth, std::vector< mat4 > &T, std::vector< double > &markerArea)
 Detects markers in each sensor and returns the transformation from marker coordinate system to sensor coordinate system.
 
bool getSensorRelativePose (std::vector< TypedImage< unsigned char > * > imgColor, std::vector< TypedImage< float > * > imgDepth, std::vector< mat4 > &T, std::vector< double > &markerArea)
 Detects markers in each sensor and returns the transformation of sensor 0 to each other sensor i (T has size m_sensors-1).
 

Static Public Member Functions

static bool getMarkerPose (int markerId, double markerSize, const TypedImage< unsigned char > &imgColor, const mat3 &colorK, mat4 &T)
 Estimates the pose of a single marker in a color image.
 

Constructor & Destructor Documentation

◆ MultiSensorCalibration()

MultiSensorCalibration ( int sensors,
const std::vector< mat3 > & depthK,
const std::vector< mat3 > & colorK,
const std::vector< mat4 > & depthToColorT,
const MarkerConfiguration & config )

Constructs a calibration object for multiple sensors.

Parameters
sensorsNumber of sensors.
depthKDepth sensor intrinsic parameters.
colorKColor sensor intrinsic parameters.
depthToColorTExtrinsic transformation from depth to color for each sensor.
configMarker configuration.

Member Function Documentation

◆ getSensorPose()

bool getSensorPose ( std::vector< TypedImage< unsigned char > * > imgColor,
std::vector< TypedImage< float > * > imgDepth,
std::vector< mat4 > & T,
std::vector< double > & markerArea )

Detects markers in each sensor and returns the transformation from marker coordinate system to sensor coordinate system.

Marker area contains the size of each detected marker in pixels.

◆ getSensorRelativePose()

bool getSensorRelativePose ( std::vector< TypedImage< unsigned char > * > imgColor,
std::vector< TypedImage< float > * > imgDepth,
std::vector< mat4 > & T,
std::vector< double > & markerArea )

Detects markers in each sensor and returns the transformation of sensor 0 to each other sensor i (T has size m_sensors-1).

Marker area contains the size of each detected marker in pixels.


The documentation for this class was generated from the following file:
Search Tab / S to search, Esc to close