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
Definition at line 114 of file vision/include/mrpt/vision/types.h.
#include <mrpt/vision/types.h>
Public Types | |
typedef std::vector< TFeatureObservation > | BASE |
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=NULL, std::map< TLandmarkID, TLandmarkID > *old2new_lmIDs=NULL) |
Rearrange frame and feature IDs such as they start at 0 and there are no gaps. More... | |
Public Attributes | |
T | elements |
STL member. More... | |
typedef std::vector<TFeatureObservation> mrpt::vision::TSequenceFeatureObservations::BASE |
Definition at line 116 of file vision/include/mrpt/vision/types.h.
|
inline |
Definition at line 118 of file vision/include/mrpt/vision/types.h.
|
inline |
Definition at line 119 of file vision/include/mrpt/vision/types.h.
|
inline |
Definition at line 120 of file vision/include/mrpt/vision/types.h.
void TSequenceFeatureObservations::compressIDs | ( | std::map< TCameraPoseID, TCameraPoseID > * | old2new_camIDs = NULL , |
std::map< TLandmarkID, TLandmarkID > * | old2new_lmIDs = NULL |
||
) |
Rearrange frame and feature IDs such as they start at 0 and there are no gaps.
old2new_camIDs | If provided, the mapping from old to new IDs is stored here. |
old2new_lmIDs | If provided, the mapping from old to new IDs is stored here. |
Definition at line 199 of file vision/src/types.cpp.
References begin().
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.
Definition at line 166 of file vision/src/types.cpp.
References ASSERT_ABOVEEQ_, begin(), and mrpt::utils::erase_return_next().
void TSequenceFeatureObservations::loadFromTextFile | ( | const std::string & | filName | ) |
Load from a text file, in the format described in saveToTextFile.
std::exception | On I/O or format error |
Definition at line 47 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.
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.
Definition at line 139 of file vision/src/types.cpp.
References begin(), MRPT_END, and MRPT_START.
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)
Definition at line 81 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.
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.
std::exception | On I/O error |
Definition at line 29 of file vision/src/types.cpp.
References begin(), MRPT_END, MRPT_START, and THROW_EXCEPTION_FMT.
|
inherited |
STL member.
Page generated by Doxygen 1.8.14 for MRPT 1.5.7 Git: 5902e14cc Wed Apr 24 15:04:01 2019 +0200 at lun oct 28 01:39:17 CET 2019 |