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 191 of file vision/include/mrpt/vision/types.h.

#include <mrpt/vision/types.h>

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

Public Types

typedef std::vector< TFeatureObservationBASE
 

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 193 of file vision/include/mrpt/vision/types.h.

Constructor & Destructor Documentation

◆ TSequenceFeatureObservations() [1/3]

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

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

◆ TSequenceFeatureObservations() [2/3]

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

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

◆ TSequenceFeatureObservations() [3/3]

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

Definition at line 197 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 vision/src/types.cpp.

References begin().

Here is the call graph for this function:

◆ 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 vision/src/types.cpp.

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

Here is the call graph for this function:

◆ 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 vision/src/types.cpp.

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

Here is the call graph for this function:

◆ 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 vision/src/types.cpp.

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

Here is the call graph for this function:

◆ 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 vision/src/types.cpp.

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

◆ 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 vision/src/types.cpp.

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

Here is the call graph for this function:

Member Data Documentation

◆ elements

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

STL member.




Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: ae4571287 Thu Nov 23 00:06:53 2017 +0100 at dom oct 27 23:51:55 CET 2019