ImFusion C++ SDK 4.5.0
ImFusion::RGBDDataComponent Class Reference

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

RGBDDataComponent stores all calibration and configuration parameters for an RGBD sensor. More...

Inheritance diagram for ImFusion::RGBDDataComponent:

Detailed Description

RGBDDataComponent stores all calibration and configuration parameters for an RGBD sensor.

This includes intrinsic and distortion parameters for both depth and color cameras, image sizes, and transformations between camera coordinate systems.

Intended usage:

  • Attach this component to image sets or data objects representing RGBD sensor data.
  • Use the setters to configure calibration and other parameters based on sensor specifications or calibration results.
  • Use the getters to retrieve respective parameters for processing RGBD data

Important aspects:

  • All parameters must be set to match the actual data for correct processing.
  • The 4x4 matrices depthToColorTransform and sensorTransform are representing euclidean transformations (SE(3)).
  • The component can be serialized/deserialized via Properties.
  • No automatic consistency checks are performed between color and depth camera coordinate systems and the depthToColorT transform.
  • For serlialization we only store the depth pose in the properties and recover the color pose via the depthToColorT transform.
  • Our internal algorithms mainly use the depth camera as reference camera and deal with it.
  • Thread safety is not guaranteed.

Example 1:

CameraCalibrationDataComponent colorCalib, depthCalib;
// ... configure colorCalib and depthCalib ...
mat4 depthToColor; // transformation from depth to color camera
RGBDDataComponent comp(colorCalib, depthCalib, depthToColor);
if (comp.valid()) { /* use comp for further processing */ }
A data component storing mainly the intrinsic calibration of a pinhole camera Information such as ima...
Definition CameraCalibrationDataComponent.h:23

Example 2:

Note: All parameters are just set to some example values and do not represent a real sensor.

RGBDDataComponent comp;
comp.colorCameraCalibration().p_imageSize = vec2i(1920, 1080);
comp.colorCameraCalibration().p_K = mat3::Identity();
comp.colorCameraCalibration().p_distortion = vec5::Zero();
comp.depthCameraCalibration().p_imageSize = vec2i(512, 424);
comp.depthCameraCalibration().p_K = mat3::Identity();
comp.depthCameraCalibration().p_distortion = vec5::Zero();
comp.rgbdCalibration().p_depthToColorT = mat4::Identity();
comp.multiCameraCalibration().p_sensorT = mat4::Identity();
comp.setDescription("Example RGBD Sensor");
Parameter< mat4 > p_sensorT
Represents the multi-camera transformation from a camera to common reference coordinate system.
Definition MultiCameraCalibrationDataComponent.h:24
Parameter< mat4 > p_depthToColorT
Represents the transformation from depth to color camera coordinate system.
Definition RGBDCalibrationDataComponent.h:32
MultiCameraCalibrationDataComponent & multiCameraCalibration()
Access to the multi-camera calibration data. Calibration is w.r.t. to the depth camera coordinate sys...
CameraCalibrationDataComponent & depthCameraCalibration()
Access to the depth camera calibration data.There will be no automatic consistency check between colo...
void setDescription(const std::string &description)
Sets/gets a human-readable description of the sensor.
CameraCalibrationDataComponent & colorCameraCalibration()
Access to the color camera calibration data.
RGBDCalibrationDataComponent & rgbdCalibration()
Access to the RGBD-specific calibration data.There will be no automatic consistency check between col...
See also
CameraCalibrationDataComponent

Public Member Functions

 RGBDDataComponent (const RGBDDataComponent &other)=default
 RGBDDataComponent (const CameraCalibrationDataComponent &camColor, const CameraCalibrationDataComponent &camDepth, const RGBDCalibrationDataComponent &rgbdCalib=RGBDCalibrationDataComponent(), const MultiCameraCalibrationDataComponent &multiCamCalib=MultiCameraCalibrationDataComponent())
RGBDDataComponent & operator= (const RGBDDataComponent &other)=default
bool operator== (const RGBDDataComponent &other) const
 Checks for exact equality of all parameters.
bool isApprox (const RGBDDataComponent &other, double precision=std::numeric_limits< double >::epsilon()) const
 Checks for approximate equality of all parameters within a given precision.
std::string id () const override
 Returns the component type identifier.
bool valid (bool checkDepth=true, bool checkColor=true, bool checkConsistentCoordinateSystems=true) const
 Checks if the component is valid (all required parameters set).
CameraCalibrationDataComponentcolorCameraCalibration ()
 Access to the color camera calibration data.
const CameraCalibrationDataComponentcolorCameraCalibration () const
CameraCalibrationDataComponentdepthCameraCalibration ()
 Access to the depth camera calibration data.There will be no automatic consistency check between color and depth camera coordinate systems and the depthToColorT transform.
const CameraCalibrationDataComponentdepthCameraCalibration () const
RGBDCalibrationDataComponentrgbdCalibration ()
 Access to the RGBD-specific calibration data.There will be no automatic consistency check between color and depth camera coordinate systems and the depthToColorT transform.
const RGBDCalibrationDataComponentrgbdCalibration () const
MultiCameraCalibrationDataComponentmultiCameraCalibration ()
 Access to the multi-camera calibration data. Calibration is w.r.t. to the depth camera coordinate system.
const MultiCameraCalibrationDataComponentmultiCameraCalibration () const
void setDescription (const std::string &description)
 Sets/gets a human-readable description of the sensor.
std::string description () const
void configure (const Properties *p) override
 Configures the component from a Properties object.
void configuration (Properties *p) const override
 Serializes the component to a Properties object.
Public Member Functions inherited from ImFusion::DataComponent< RGBDDataComponent >
std::unique_ptr< DataComponentBase > clone () const override
 Creates a clone of this data component.
std::unique_ptr< Subclass > cloneDerived () const
bool assign (const DataComponentBase &other) override
 Assigns the content of other to this data component.
bool equals (const DataComponentBase &other) const override
 Compares this data component to other for equality.
Public Member Functions inherited from ImFusion::Configurable
virtual void configureDefaults ()
 Retrieve the properties of this object, replaces values with their defaults and sets it again.
void registerParameter (ParameterBase *param)
 Register the given Parameter or SubProperty, so that it will be configured during configure()/configuration().
void unregisterParameter (const ParameterBase *param)
 Remove the given Parameter or SubProperty from the list of registered parameters.
 Configurable (const Configurable &rhs)
 Configurable (Configurable &&rhs) noexcept
Configurable & operator= (const Configurable &)
Configurable & operator= (Configurable &&) noexcept

Static Public Member Functions

static RGBDDataComponent * fromProperties (Properties *p)
 Creates a component from a Properties object.

Additional Inherited Members

Public Attributes inherited from ImFusion::Configurable
Signal signalParametersChanged
 Emitted whenever one of the registered Parameters' or SubPropertys' signalValueChanged signal was emitted.
Protected Member Functions inherited from ImFusion::DataComponentBase
 DataComponentBase (const DataComponentBase &)=default
DataComponentBase & operator= (const DataComponentBase &other)=default
Protected Attributes inherited from ImFusion::Configurable
std::vector< Paramm_params
 List of all registered Parameter and SubProperty instances.

Member Function Documentation

◆ id()

std::string ImFusion::RGBDDataComponent::id ( ) const
inlineoverridevirtual

Returns the component type identifier.

Implements ImFusion::DataComponentBase.

◆ colorCameraCalibration()

CameraCalibrationDataComponent & ImFusion::RGBDDataComponent::colorCameraCalibration ( )

Access to the color camera calibration data.

There will be no automatic consistency check between color and depth camera coordinate systems and the depthToColorT transform. User has to ensure consistency manually, but can use the valid() method for checking consistency.

◆ depthCameraCalibration()

CameraCalibrationDataComponent & ImFusion::RGBDDataComponent::depthCameraCalibration ( )

Access to the depth camera calibration data.There will be no automatic consistency check between color and depth camera coordinate systems and the depthToColorT transform.

User has to ensure consistency manually, but can use the valid() method for checking consistency.

◆ rgbdCalibration()

RGBDCalibrationDataComponent & ImFusion::RGBDDataComponent::rgbdCalibration ( )

Access to the RGBD-specific calibration data.There will be no automatic consistency check between color and depth camera coordinate systems and the depthToColorT transform.

User has to ensure consistency manually, but can use the valid() method for checking consistency.

◆ configure()

void ImFusion::RGBDDataComponent::configure ( const Properties * p)
overridevirtual

Configures the component from a Properties object.

For serialization we only store the depth pose in the properties

Reimplemented from ImFusion::Configurable.

◆ configuration()

void ImFusion::RGBDDataComponent::configuration ( Properties * p) const
overridevirtual

Serializes the component to a Properties object.

For serialization we only store the depth pose in the properties

Reimplemented from ImFusion::Configurable.


The documentation for this class was generated from the following file:
  • RGBD/Include/ImFusion/RGBD/RGBDDataComponent.h
Search Tab / S to search, Esc to close