Main MRPT website > C++ reference for MRPT 1.9.9
List of all members | Public Types | Public Member Functions | Public Attributes
mrpt::vision::TSequenceFeatureObservations Struct Reference

Detailed Description

A complete sequence of observations of features from different camera frames (poses).

This structure is the input to some (Bundle-adjustment) methods in mrpt::vision

Note
Pixel coordinates can be either "raw" or "undistorted". Read the doc of functions handling this structure to see what they expect.
See also
mrpt::vision::bundle_adj_full

Definition at line 189 of file vision/include/mrpt/vision/types.h.

#include <mrpt/vision/types.h>

Inheritance diagram for mrpt::vision::TSequenceFeatureObservations:
Inheritance graph

Public Types

using BASE = std::vector< TFeatureObservation >
 

Public Member Functions

 TSequenceFeatureObservations ()
 
 TSequenceFeatureObservations (size_t size)
 
 TSequenceFeatureObservations (const TSequenceFeatureObservations &o)
 
void saveToTextFile (const std::string &filName, bool skipFirstCommentLine=false) const
 Saves all entries to a text file, with each line having this format: #FRAME_ID #FEAT_ID #PIXEL_X #PIXEL_Y The file is self-descripting, since the first line contains a comment line (starting with '') explaining the format. More...
 
void loadFromTextFile (const std::string &filName)
 Load from a text file, in the format described in saveToTextFile. More...
 
bool saveAsSBAFiles (const TLandmarkLocationsVec &pts, const std::string &pts_file, const TFramePosesVec &cams, const std::string &cams_file) const
 Save the list of observations + the point locations + the camera frame poses to a pair of files in the format used by the Sparse Bundle Adjustment (SBA) C++ library. More...
 
size_t removeFewObservedFeatures (size_t minNumObservations=3)
 Remove all those features that don't have a minimum number of observations from different camera frame IDs. More...
 
void decimateCameraFrames (const size_t decimate_ratio)
 Remove all but one out of decimate_ratio camera frame IDs from the list (eg: from N camera pose IDs at return there will be just N/decimate_ratio) The algorithm first builds a sorted list of frame IDs, then keep the lowest ID, remove the next "decimate_ratio-1", and so on. More...
 
void compressIDs (std::map< TCameraPoseID, TCameraPoseID > *old2new_camIDs=nullptr, std::map< TLandmarkID, TLandmarkID > *old2new_lmIDs=nullptr)
 Rearrange frame and feature IDs such as they start at 0 and there are no gaps. More...
 

Public Attributes

elements
 STL member. More...
 

Member Typedef Documentation

◆ BASE

Definition at line 191 of file vision/include/mrpt/vision/types.h.

Constructor & Destructor Documentation

◆ TSequenceFeatureObservations() [1/3]

mrpt::vision::TSequenceFeatureObservations::TSequenceFeatureObservations ( )
inline

Definition at line 193 of file vision/include/mrpt/vision/types.h.

◆ TSequenceFeatureObservations() [2/3]

mrpt::vision::TSequenceFeatureObservations::TSequenceFeatureObservations ( size_t  size)
inline

Definition at line 194 of file vision/include/mrpt/vision/types.h.

◆ TSequenceFeatureObservations() [3/3]

mrpt::vision::TSequenceFeatureObservations::TSequenceFeatureObservations ( const TSequenceFeatureObservations o)
inline

Definition at line 195 of file vision/include/mrpt/vision/types.h.

Member Function Documentation

◆ compressIDs()

void TSequenceFeatureObservations::compressIDs ( std::map< TCameraPoseID, TCameraPoseID > *  old2new_camIDs = nullptr,
std::map< TLandmarkID, TLandmarkID > *  old2new_lmIDs = nullptr 
)

Rearrange frame and feature IDs such as they start at 0 and there are no gaps.

Parameters
old2new_camIDsIf provided, the mapping from old to new IDs is stored here.
old2new_lmIDsIf provided, the mapping from old to new IDs is stored here.

Definition at line 207 of file types.cpp.

References begin().

◆ decimateCameraFrames()

void TSequenceFeatureObservations::decimateCameraFrames ( const size_t  decimate_ratio)

Remove all but one out of decimate_ratio camera frame IDs from the list (eg: from N camera pose IDs at return there will be just N/decimate_ratio) The algorithm first builds a sorted list of frame IDs, then keep the lowest ID, remove the next "decimate_ratio-1", and so on.

Remove one out of decimate_ratio camera frame IDs from the list.

See also
After calling this you may want to call compressIDs

Definition at line 172 of file types.cpp.

References ASSERT_ABOVEEQ_, begin(), and mrpt::containers::erase_return_next().

◆ loadFromTextFile()

void TSequenceFeatureObservations::loadFromTextFile ( const std::string filName)

Load from a text file, in the format described in saveToTextFile.

Exceptions
std::exceptionOn I/O or format error

Definition at line 51 of file types.cpp.

References mrpt::containers::clear(), MRPT_END, MRPT_START, push_back(), THROW_EXCEPTION, THROW_EXCEPTION_FMT, trim(), mrpt::img::TPixelCoordf::x, and mrpt::img::TPixelCoordf::y.

◆ removeFewObservedFeatures()

size_t TSequenceFeatureObservations::removeFewObservedFeatures ( size_t  minNumObservations = 3)

Remove all those features that don't have a minimum number of observations from different camera frame IDs.

Returns
the number of erased entries.
See also
After calling this you may want to call compressIDs

Definition at line 143 of file types.cpp.

References begin(), MRPT_END, and MRPT_START.

◆ saveAsSBAFiles()

bool TSequenceFeatureObservations::saveAsSBAFiles ( const TLandmarkLocationsVec pts,
const std::string pts_file,
const TFramePosesVec cams,
const std::string cams_file 
) const

Save the list of observations + the point locations + the camera frame poses to a pair of files in the format used by the Sparse Bundle Adjustment (SBA) C++ library.

Point file lines: X Y Z nframes frame0 x0 y0 frame1 x1 y1 ...

Camera file lines: qr qx qy qz x y z (Pose as a quaternion)

Returns
false on any error

Definition at line 89 of file types.cpp.

References mrpt::vision::TFeatureObservation::id_feature, mrpt::vision::TFeatureObservation::id_frame, MRPT_END, MRPT_START, and mrpt::vision::TFeatureObservation::px.

◆ saveToTextFile()

void TSequenceFeatureObservations::saveToTextFile ( const std::string filName,
bool  skipFirstCommentLine = false 
) const

Saves all entries to a text file, with each line having this format: #FRAME_ID #FEAT_ID #PIXEL_X #PIXEL_Y The file is self-descripting, since the first line contains a comment line (starting with '') explaining the format.

Saves all entries to a text file, with each line having this format: #FRAME_ID #FEAT_ID #PIXEL_X #PIXEL_Y.

Generated files can be loaded from MATLAB.

See also
loadFromTextFile
Exceptions
std::exceptionOn I/O error
See also
loadFromTextFile

Definition at line 30 of file types.cpp.

References begin(), MRPT_END, MRPT_START, and THROW_EXCEPTION_FMT.

Member Data Documentation

◆ elements

T std::vector< T >::elements
inherited

STL member.




Page generated by Doxygen 1.8.17 for MRPT 1.9.9 Git: ad3a9d8ae Tue May 1 23:10:22 2018 -0700 at miƩ 12 jul 2023 10:03:34 CEST