166 std::map<mrpt::vision::TFeatureID, TRelativeFeaturePos>;
178 using BASE = std::vector<TFeatureObservation>;
193 const std::string& filName,
bool skipFirstCommentLine =
false)
const;
233 std::map<TCameraPoseID, TCameraPoseID>* old2new_camIDs =
nullptr,
234 std::map<TLandmarkID, TLandmarkID>* old2new_lmIDs =
nullptr);
315 TROI(
float x1,
float x2,
float y1,
float y2,
float z1,
float z2);
332 TImageROI(
float x1,
float x2,
float y1,
float y2);
450 #define COPY_MEMBER(_m) this->_m = o._m; 451 #define CHECK_MEMBER(_m) this->_m == o._m 571 const bool& _useOriFilter,
const double& _oriThreshold,
572 const bool& _useDepthFilter,
const double& _th,
const double& _th2,
573 const unsigned int& _lwscl1,
const unsigned int& _lwscl2,
574 const unsigned int& _hwscl1,
const unsigned int& _hwscl2,
575 const int& _searchAreaSize,
const int& _lsth,
const int& _tsth,
576 const int& _minFeaturesToFind,
const int& _minFeaturesToBeLost)
650 const unsigned int& _basePSize,
const std::vector<double>& _scales,
651 const unsigned int& _comLScl,
const unsigned int& _comHScl,
652 const double& _sg1,
const double& _sg2,
const double& _sg3,
653 const bool& _computeDepth,
const bool _blurImage,
const double& _fx,
654 const double& _cx,
const double& _cy,
const double& _baseline,
655 const bool& _computeHashCoeffs,
const double& _cropValue)
671 scales.resize(_scales.size());
672 for (
unsigned int k = 0; k < _scales.size(); ++k)
706 using namespace
mrpt::vision;
TUnc_Prop_Method
Method for propagating the feature's image coordinate uncertainty into 3D space.
float EDD_RATIO
Boundary Ratio between the two lowest EDD.
TMatchingOptions()
Intrinsic parameters of the stereo rig.
void loadFromTextFile(const std::string &filName)
Load from a text file, in the format described in saveToTextFile.
float rCC_TH
Maximum Ratio Between the two highest CC values.
TLandmarkID id_feature
A unique ID of this feature.
uint64_t TCameraPoseID
Unique IDs for camera frames (poses)
mrpt::math::CMatrixDouble33 F
Stereo Fundamental matrix.
uint32_t minFeaturesToFind
The minimum number of features allowed in the system.
uint64_t TFeatureID
Definition of a feature ID.
void operator=(const TMatchingOptions &o)
double maxORB_dist
Maximun distance between ORB descriptors.
unsigned __int16 uint16_t
This is a virtual base class for sets of options than can be loaded from and/or saved to configuratio...
bool estimateDepth
Whether or not estimate the 3D position of the real features for the matches (only with parallelOptic...
TSequenceFeatureObservations()=default
uint64_t TLandmarkID
Unique IDs for landmarks.
Non-defined feature (also used for Occupancy features)
bool useXRestriction
Whether or not employ the x-coord restriction for finding correspondences (bumblebee camera...
mrpt::math::CMatrixDouble33 F
Linear propagation of the uncertainty.
double SAD_RATIO
Boundary Ratio between the two highest SAD.
Intensity-domain spin image descriptors.
void dumpToTextStream(std::ostream &out) const override
This method should clearly display all the contents of the structure in textual form, sending it to a std::ostream.
Unable to track this feature (mismatch is too high for the given tracking window: lack of texture...
float min_disp
Disparity limits, see also 'useDisparityLimits'.
Bit-based feature descriptor.
Struct containing the output after matching multi-resolution SIFT-like descriptors.
One feature observation entry, used within sequences with TSequenceFeatureObservations.
Scale Invariant Feature Transform [LOWE'04].
A pair (x,y) of pixel coordinates (subpixel resolution).
std::vector< int > secondListCorrespondences
Contains the indexes within the first list corresponding to the second one.
TRelativeFeaturePos()=default
float epipolar_TH
Epipolar constraint (rows of pixels)
A especial case: this is not an image feature, but a 2D/3D beacon (used for range-only SLAM from mrpt...
uint32_t highScl1
The highest scales in the two features to be taken into account in the matching process.
float minZ
Maximum allowed distance.
float EDSD_RATIO
Boundary Ratio between the two lowest SURF EDSD.
bool useEpipolarRestriction
Whether or not take into account the epipolar restriction for finding correspondences.
std::vector< double > firstListDistance
Contains the distances between the descriptors.
Matching by Hamming distance between ORB descriptors.
void saveToConfigFile(mrpt::config::CConfigFileBase &cfg, const std::string §ion) const override
This method saves the options to a ".ini"-like file or memory-stored string list. ...
LSD detector, OpenCV's implementation.
MRPT_FILL_ENUM(featNotDefined)
Used in some methods to mean "any of the present descriptors".
TMultiResDescOptions()
Default constructor.
float factor_k
K factor for the UT.
A complete sequence of observations of features from different camera frames (poses).
float yMin
Y coordinate limits [0,imageHeight)
A structure for storing a 3D ROI.
bool useDisparityLimits
Whether or not use limits (min,max) for the disparity, see also 'min_disp, max_disp'.
float stdPixel
Standard deviation of the error in feature detection.
A structure for defining a ROI within an image.
std::vector< TFeatureObservation > BASE
bool computeHashCoeffs
Whether or not compute the coefficients for mantaining a HASH table of descriptors (for relocalizatio...
uint32_t comLScl
The subset of scales for which to compute the descriptors.
std::vector< int > firstListFoundScales
Contains the scales of the first list where the correspondence was found.
Matching by Euclidean distance between SIFT descriptors.
std::vector< mrpt::poses::CPose3D > TFramePosesVec
A list of camera frames (6D poses), which assumes indexes are unique, consecutive IDs...
bool parallelOpticalAxis
Whether or not the stereo rig has the optical axes parallel.
float minDCC_TH
Minimum Difference Between the Maximum Cross Correlation Values.
Inactive (right after detection, and before being tried to track)
This class allows loading and storing values and vectors of different types from a configuration text...
uint32_t basePSize
The size of the base patch.
TUnc_Prop_Method uncPropagation
double sg1
The sigmas for the Gaussian kernels.
uint32_t timesSeenThreshold
The minimum number of frames for a certain feature to be considered stable.
void loadFromConfigFile(const mrpt::config::CConfigFileBase &source, const std::string §ion) override
This method load the options from a ".ini"-like file or memory-stored string list.
TMatchingMethod
Method for propagating the feature's image coordinate uncertainty into 3D space.
TMultiResDescMatchOptions()=default
Default constructor.
Parameters associated to a stereo system.
bool addMatches
Whether or not to add the matches found into the input matched list (if false the input list will be ...
uint32_t lastSeenThreshold
The allowed number of frames since a certain feature was seen for the last time.
bool useDepthFilter
Whether or not use the filter based on the depth test.
Matching by Euclidean distance between SURF descriptors.
std::map< TLandmarkID, mrpt::math::TPoint3D > TLandmarkLocationsMap
A list of landmarks (3D points) indexed by unique IDs.
float maxY
Maximum allowed height.
Feature fell Out Of Bounds (out of the image limits, too close to image borders)
TSequenceFeatureObservations(size_t size)
TKeyPointMethod
Types of key point detectors.
TDescriptorType
The bitwise OR combination of values of TDescriptorType are used in CFeatureExtraction::computeDescri...
Classes for computer vision, detectors, features, etc.
Uncertainty propagation through the Unscented Transformation.
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 #PIX...
std::vector< int > firstListCorrespondences
Contains the indexes within the second list corresponding to the first one.
#define MRPT_ENUM_TYPE_END()
double maxDepthThreshold
The maximum allowed depth for the matching.
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 th...
Speeded Up Robust Feature [BAY'06].
One relative feature observation entry, used with some relative bundle-adjustment functions...
GLsizei const GLchar ** string
double cropValue
The SIFT-like descriptor is cropped at this value during normalization.
FAST feature detector, OpenCV's implementation ("Faster and better: A machine learning approach to...
FASTER-9 detector, Edward Rosten's libcvd, SSE2 optimized.
std::map< mrpt::vision::TFeatureID, TRelativeFeaturePos > TRelativeFeaturePosMap
An index of feature IDs and their relative locations.
mrpt::img::TPixelCoordf px
The pixel coordinates of the observed feature.
TStereoSystemParams()
Initilization of default parameters.
float xMin
X coordinate limits [0,imageWidth)
void dumpToTextStream(std::ostream &out) const override
This method should clearly display all the contents of the structure in textual form, sending it to a std::ostream.
Matching by sum of absolute differences of the image patches.
uint32_t searchAreaSize
Size of the squared area where to search for a match.
double maxSAD_TH
Minimum Euclidean Distance Between Sum of Absolute Differences.
std::vector< double > scales
The set of scales relatives to the base patch.
unsigned __int64 uint64_t
AKAZE detector, OpenCV's implementation.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
void saveToConfigFile(mrpt::config::CConfigFileBase &cfg, const std::string §ion) const override
This method saves the options to a ".ini"-like file or memory-stored string list. ...
bool computeDepth
Whether or not to compute the depth of the feature.
void dumpToTextStream(std::ostream &out) const override
This method should clearly display all the contents of the structure in textual form, sending it to a std::ostream.
double oriThreshold
The threshold for the orientation test.
FASTER-9 detector, Edward Rosten's libcvd, SSE2 optimized.
Harris border and corner detector [HARRIS].
uint32_t lowScl1
The lowest scales in the two features to be taken into account in the matching process.
Struct containing the options when computing the multi-resolution SIFT-like descriptors.
void dumpToTextStream(std::ostream &out) const override
This method should clearly display all the contents of the structure in textual form, sending it to a std::ostream.
TRelativeFeaturePos(const mrpt::vision::TCameraPoseID _id_frame_base, const mrpt::math::TPoint3D &_pos)
void loadFromConfigFile(const mrpt::config::CConfigFileBase &source, const std::string §ion) override
Load all the params from a config source, in the format described in saveToConfigFile() ...
bool enable_robust_1to1_match
Whether or not only permit matches that are consistent from left->right and right->left.
std::map< TCameraPoseID, mrpt::poses::CPose3D > TFramePosesMap
A list of camera frames (6D poses) indexed by unique IDs.
float maxZ
Maximum allowed distance.
A structure containing options for the matching.
void loadFromConfigFile(const mrpt::config::CConfigFileBase &cfg, const std::string §ion) override
Load all the params from a config source, in the format described in saveToConfigFile() ...
Matching by cross correlation of the image patches.
bool hasFundamentalMatrix
Whether or not there is a fundamental matrix.
Kanade-Lucas-Tomasi feature [SHI'94].
TFeatureObservation()=default
GLsizei GLsizei GLchar * source
size_t removeFewObservedFeatures(size_t minNumObservations=3)
Remove all those features that don't have a minimum number of observations from different camera fram...
Struct containing the options when matching multi-resolution SIFT-like descriptors.
float maxEDSD_TH
Maximum Euclidean Distance Between SURF Descriptors.
float minCC_TH
Minimum Value of the Cross Correlation.
float factor_a
Alpha factor for SUT.
mrpt::vision::TCameraPoseID id_frame_base
The ID of the camera frame which is the coordinate reference of pos.
float factor_b
Beta factor for the SUT.
Feature correctly tracked.
TCameraPoseID id_frame
A unique ID of a "frame" (camera position) from where the feature was observed.
double matchingThreshold
The absolute threshold in descriptor distance for considering a match.
float maxEDD_TH
Maximum Euclidean Distance Between SIFT Descriptors.
TFeatureObservation(const TLandmarkID _id_feature, const TCameraPoseID _id_frame, const mrpt::img::TPixelCoordf &_px)
TMultiResDescMatchOptions(const bool &_useOriFilter, const double &_oriThreshold, const bool &_useDepthFilter, const double &_th, const double &_th2, const unsigned int &_lwscl1, const unsigned int &_lwscl2, const unsigned int &_hwscl1, const unsigned int &_hwscl2, const int &_searchAreaSize, const int &_lsth, const int &_tsth, const int &_minFeaturesToFind, const int &_minFeaturesToBeLost)
Log-Polar image descriptor.
bool operator==(const TMatchingOptions &o) const
uint32_t minFeaturesToBeLost
The minimum number of features allowed in the system to not be considered to be lost.
std::vector< mrpt::math::TPoint3D > TLandmarkLocationsVec
A list of landmarks (3D points), which assumes indexes are unique, consecutive IDs.
TMatchingMethod matching_method
Matching method.
#define MRPT_ENUM_TYPE_BEGIN(_ENUM_TYPE_WITH_NS)
mrpt::math::TPoint3D pos
The (x,y,z) location of the feature, wrt to the camera frame id_frame_base.
bool useOriFilter
Whether or not use the filter based on orientation test.
unsigned __int32 uint32_t
void loadFromConfigFile(const mrpt::config::CConfigFileBase &source, const std::string §ion) override
This method load the options from a ".ini"-like file or memory-stored string list.
bool blurImage
Whether or not to blur the image previously to compute the descriptors.
TMultiResDescOptions(const unsigned int &_basePSize, const std::vector< double > &_scales, const unsigned int &_comLScl, const unsigned int &_comHScl, const double &_sg1, const double &_sg2, const double &_sg3, const bool &_computeDepth, const bool _blurImage, const double &_fx, const double &_cx, const double &_cy, const double &_baseline, const bool &_computeHashCoeffs, const double &_cropValue)
double fx
Intrinsic stereo pair parameters for computing the depth of the feature.
double matchingRatioThreshold
The ratio between the two lowest distances threshold for considering a match.
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.
ORB detector and descriptor, OpenCV's implementation.
TMultiResMatchingOutput()=default
Uncertainty propagation through the Scaled Unscented Transformation.
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 a...
float stdDisp
Standard deviation of the error in disparity computation.
mrpt::math::CMatrixDouble33 K
Intrinsic parameters.
FASTER-9 detector, Edward Rosten's libcvd, SSE2 optimized.