ImFusion SDK 4.3
RGBDMultiSequence Class Reference

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

Collection of multiple synchronized or unsynchronized RGB-D sequences. More...

Detailed Description

Collection of multiple synchronized or unsynchronized RGB-D sequences.

This class manages a set of RGBDSequence objects, providing unified access to frames and sensor parameters across RGBDSequences. It supports construction from image sets or various file formats (rfms, rfs, bag), and handles frame synchronization if requested.

Usage:

Important aspects:

  • Ownership of input sequences or image sets is transferred to RGBDMultiSequence.
  • Frame synchronization is optional and can be controlled via the constructor or factory methods.
  • Sensor parameters can be queried and set for each sequence.
  • The class is not copyable.

Example:

auto multiSeq = RGBDMultiSequence::createFromRFMS("data.rfms");
if (multiSeq && multiSeq->isValid()) {
int nFrames = multiSeq->frames();
int nSensors = multiSeq->size();
// Access frames and sensor parameters
}
static std::unique_ptr< RGBDMultiSequence > createFromRFMS(const std::string &filename, bool syncFrames=true)
Creates a multi-sequence from an RFMS file.

Public Member Functions

 RGBDMultiSequence (std::vector< std::unique_ptr< RGBDSequence > > &sequences, bool syncFrames=true)
 Constructor: takes ownership of the input sequences.
 
std::string filename () const
 Returns the filename if the sequence was constructed from a file.
 
bool isValid ()
 Returns whether the sequence is valid.
 
bool getFrame (int frame, int sensor, TypedImage< float > *imgDepth, TypedImage< unsigned char > *imgColor, uint64_t *timestampDepth=nullptr, uint64_t *timestampColor=nullptr, mat4 *T=nullptr, int *sensorFrame=nullptr)
 Retrieves a frame from the sequence.
 
int frames () const
 Returns the number of frames in the sequence.
 
RGBDDataComponent camera (int sensor) const
 Returns the sensor parameters for a given sensor.
 
bool setCamera (int sensor, const RGBDDataComponent &cam)
 Sets the sensor parameters for a given sensor.
 
std::vector< RGBDSequence * > sequences () const
 Returns pointers to the individual sequences.
 
int size () const
 Returns the number of sequences (sensors).
 

Static Public Member Functions

static std::unique_ptr< RGBDMultiSequencecreateFromImages (std::vector< std::unique_ptr< SharedImageSet > > &isDepth, std::vector< std::unique_ptr< SharedImageSet > > &isColor, const std::vector< std::vector< uint64_t > > &timestampsDepth=std::vector< std::vector< uint64_t > >(), const std::vector< std::vector< uint64_t > > &timestampsColor=std::vector< std::vector< uint64_t > >())
 Creates a multi-sequence from SharedImageSets. Ownership is transferred.
 
static std::unique_ptr< RGBDMultiSequencecreateFromRFMS (const std::string &filename, bool syncFrames=true)
 Creates a multi-sequence from an RFMS file.
 
static std::unique_ptr< RGBDMultiSequencecreateFromRFS (const std::string &filename, bool syncFrames=true)
 Creates a multi-sequence from an RFS file.
 
static std::unique_ptr< RGBDMultiSequencecreateFromBAG (const std::string &filename)
 Creates a multi-sequence from a ROS bag file.
 

Member Function Documentation

◆ getFrame()

bool getFrame ( int frame,
int sensor,
TypedImage< float > * imgDepth,
TypedImage< unsigned char > * imgColor,
uint64_t * timestampDepth = nullptr,
uint64_t * timestampColor = nullptr,
mat4 * T = nullptr,
int * sensorFrame = nullptr )

Retrieves a frame from the sequence.

Parameters
frameFrame index
sensorSensor index
[out]imgDepthDepth image
[out]imgColorColor image
[out]timestampDepthDepth timestamp (optional)
[out]timestampColorColor timestamp (optional)
[out]TSensor pose (optional)
[out]sensorFrameFrame index in the sensor sequence (optional)
Returns
true if frame retrieval was successful

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