Go to the documentation of this file.
10 #ifndef mrpt_vision_types_H
11 #define mrpt_vision_types_H
116 typedef std::vector<TFeatureObservation>
BASE;
126 void saveToTextFile(
const std::string &filName,
bool skipFirstCommentLine =
false)
const;
141 const std::string &pts_file,
143 const std::string &cams_file)
const;
160 std::map<TCameraPoseID,TCameraPoseID> *old2new_camIDs=NULL,
161 std::map<TLandmarkID,TLandmarkID> *old2new_lmIDs=NULL );
238 TROI(
float x1,
float x2,
float y1,
float y2,
float z1,
float z2);
340 #define COPY_MEMBER(_m) this->_m = o._m;
341 #define CHECK_MEMBER(_m) this->_m == o._m
414 firstListCorrespondences(), secondListCorrespondences(),
415 firstListFoundScales(), firstListDistance() {}
443 useOriFilter( true ), oriThreshold( 0.2 ),
444 useDepthFilter( true ), matchingThreshold( 1e4 ), matchingRatioThreshold( 0.5 ),
445 lowScl1(0), lowScl2(0), highScl1(6), highScl2(6), searchAreaSize(20), lastSeenThreshold(10), timesSeenThreshold(5),
446 minFeaturesToFind(30), minFeaturesToBeLost(5) {}
449 const bool &_useOriFilter,
const double &_oriThreshold,
const bool &_useDepthFilter,
450 const double &_th,
const double &_th2,
const unsigned int &_lwscl1,
const unsigned int &_lwscl2,
451 const unsigned int &_hwscl1,
const unsigned int &_hwscl2,
const int &_searchAreaSize,
const int &_lsth,
const int &_tsth,
452 const int &_minFeaturesToFind,
const int &_minFeaturesToBeLost ) :
453 useOriFilter( _useOriFilter ), oriThreshold( _oriThreshold ), useDepthFilter( _useDepthFilter ),
454 matchingThreshold ( _th ), matchingRatioThreshold ( _th2 ), lowScl1( _lwscl1 ), lowScl2( _lwscl2 ),
455 highScl1( _hwscl1 ), highScl2( _hwscl2 ), searchAreaSize( _searchAreaSize ), lastSeenThreshold( _lsth ), timesSeenThreshold( _tsth ),
456 minFeaturesToFind( _minFeaturesToFind ), minFeaturesToBeLost(_minFeaturesToBeLost) {}
474 double fx,cx,cy,baseline;
482 basePSize(23), sg1 (0.5), sg2(7.5), sg3(8.0), computeDepth(true), blurImage(true), fx(0.0), cx(0.0), cy(0.0), baseline(0.0), computeHashCoeffs(false), cropValue(0.2)
497 const unsigned int &_comLScl,
const unsigned int &_comHScl,
498 const double &_sg1,
const double &_sg2,
const double &_sg3,
499 const bool &_computeDepth,
const bool _blurImage,
const double &_fx,
const double &_cx,
const double &_cy,
const double &_baseline,
const bool &_computeHashCoeffs,
const double &_cropValue ):
500 basePSize( _basePSize ), comLScl( _comLScl ), comHScl( _comHScl ),
501 sg1( _sg1 ), sg2( _sg2 ), sg3( _sg3 ),
502 computeDepth( _computeDepth ), blurImage( _blurImage ), fx( _fx ), cx( _cx ), cy( _cy ), baseline( _baseline ), computeHashCoeffs( _computeHashCoeffs), cropValue( _cropValue )
504 scales.resize( _scales.size() );
505 for(
unsigned int k = 0; k < _scales.size(); ++k)
506 scales[k] = _scales[k];
float maxEDSD_TH
Maximum Euclidean Distance Between SURF Descriptors.
@ descORB
Bit-based feature descriptor.
uint32_t minFeaturesToFind
The minimum number of features allowed in the system. If current number is below this value,...
double matchingThreshold
The absolute threshold in descriptor distance for considering a match.
float maxEDD_TH
Maximum Euclidean Distance Between SIFT Descriptors.
bool useXRestriction
Whether or not employ the x-coord restriction for finding correspondences (bumblebee camera,...
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...
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)
void operator=(const TMatchingOptions &o)
double maxORB_dist
Maximun distance between ORB descriptors.
@ featFASTER10
FASTER-9 detector, Edward Rosten's libcvd implementation optimized for SSE2.
@ featFAST
FAST feature detector, OpenCV's implementation ("Faster and better: A machine learning approach to co...
float factor_b
Beta factor for the SUT.
@ descPolarImages
Polar image descriptor.
TLandmarkID id_feature
A unique ID of this feature.
TDescriptorType
The bitwise OR combination of values of TDescriptorType are used in CFeatureExtraction::computeDescri...
size_t removeFewObservedFeatures(size_t minNumObservations=3)
Remove all those features that don't have a minimum number of observations from different camera fram...
float rCC_TH
Maximum Ratio Between the two highest CC values.
double SAD_RATIO
Boundary Ratio between the two highest SAD.
Struct containing the output after matching multi-resolution SIFT-like descriptors.
uint32_t highScl2
The highest scales in the two features to be taken into account in the matching process.
float factor_a
Alpha factor for SUT.
TROI(float x1, float x2, float y1, float y2, float z1, float z2)
uint64_t TFeatureID
Definition of a feature ID.
std::vector< TFeatureObservation > BASE
TMultiResMatchingOutput()
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)
float stdDisp
Standard deviation of the error in disparity computation.
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...
bool computeDepth
Whether or not to compute the depth of the feature.
std::vector< int > secondListCorrespondences
Contains the indexes within the first list corresponding to the second one.
std::vector< double > firstListDistance
Contains the distances between the descriptors.
mrpt::math::CMatrixDouble33 F
TSequenceFeatureObservations(const TSequenceFeatureObservations &o)
@ featORB
ORB detector and descriptor, OpenCV's implementation ("ORB: an efficient alternative to SIFT or SURF"...
Struct containing the options when computing the multi-resolution SIFT-like descriptors.
float epipolar_TH
Epipolar constraint (rows of pixels)
float factor_k
K factor for the UT.
size_t size(const MATRIXLIKE &m, int dim)
mrpt::utils::TPixelCoordf px
The pixel coordinates of the observed feature.
bool useDepthFilter
Whether or not use the filter based on the depth test.
float EDSD_RATIO
Boundary Ratio between the two lowest SURF EDSD.
Struct containing the options when matching multi-resolution SIFT-like descriptors.
void dumpToTextStream(mrpt::utils::CStream &out) const MRPT_OVERRIDE
This method should clearly display all the contents of the structure in textual form,...
@ featFASTER12
FASTER-9 detector, Edward Rosten's libcvd implementation optimized for SSE2.
A complete sequence of observations of features from different camera frames (poses).
bool blurImage
Whether or not to blur the image previously to compute the descriptors.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
A structure for storing a 3D ROI.
@ featKLT
Kanade-Lucas-Tomasi feature [SHI'94].
TMatchingMethod
Method for propagating the feature's image coordinate uncertainty into 3D space.
void loadFromConfigFile(const mrpt::utils::CConfigFileBase &source, const std::string §ion) MRPT_OVERRIDE
This method load the options from a ".ini"-like file or memory-stored string list.
@ descLogPolarImages
Log-Polar image descriptor.
@ mmDescriptorSIFT
Matching by Euclidean distance between SIFT descriptors.
TFeatureObservation(const TLandmarkID _id_feature, const TCameraPoseID _id_frame, const mrpt::utils::TPixelCoordf &_px)
@ descAny
Used in some methods to mean "any of the present descriptors".
bool useEpipolarRestriction
Whether or not take into account the epipolar restriction for finding correspondences.
float yMin
Y coordinate limits [0,imageHeight)
TImageROI(float x1, float x2, float y1, float y2)
bool useDisparityLimits
Whether or not use limits (min,max) for the disparity, see also 'min_disp, max_disp'.
bool parallelOpticalAxis
Whether or not the stereo rig has the optical axes parallel.
void dumpToTextStream(mrpt::utils::CStream &out) const MRPT_OVERRIDE
This method should clearly display all the contents of the structure in textual form,...
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.
uint32_t lowScl2
The lowest scales in the two features to be taken into account in the matching process.
TRelativeFeaturePos(const mrpt::vision::TCameraPoseID _id_frame_base, const mrpt::math::TPoint3D &_pos)
mrpt::math::CMatrixDouble33 K
Intrinsic parameters.
TSequenceFeatureObservations(size_t size)
std::vector< int > firstListFoundScales
Contains the scales of the first list where the correspondence was found.
void dumpToTextStream(mrpt::utils::CStream &out) const MRPT_OVERRIDE
This method should clearly display all the contents of the structure in textual form,...
float minDCC_TH
Minimum Difference Between the Maximum Cross Correlation Values.
@ mmDescriptorSURF
Matching by Euclidean distance between SURF descriptors.
TMultiResDescOptions()
Default constructor.
double oriThreshold
The threshold for the orientation test.
A structure for defining a ROI within an image.
float xMin
X coordinate limits [0,imageWidth)
@ descSIFT
SIFT descriptors.
@ featFASTER9
FASTER-9 detector, Edward Rosten's libcvd implementation optimized for SSE2.
double matchingRatioThreshold
The ratio between the two lowest distances threshold for considering a match.
std::map< TLandmarkID, mrpt::math::TPoint3D > TLandmarkLocationsMap
A list of landmarks (3D points) indexed by unique IDs.
mrpt::aligned_containers< TCameraPoseID, mrpt::poses::CPose3D >::map_t TFramePosesMap
A list of camera frames (6D poses) indexed by unique IDs.
@ descSpinImages
Intensity-domain spin image descriptors.
std::map< TYPE1, TYPE2, std::less< TYPE1 >, Eigen::aligned_allocator< std::pair< const TYPE1, TYPE2 > > > map_t
@ Prop_UT
Uncertainty propagation through the Unscented Transformation.
void loadFromTextFile(const std::string &filName)
Load from a text file, in the format described in saveToTextFile.
This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...
This class allows loading and storing values and vectors of different types from a configuration text...
This is a virtual base class for sets of options than can be loaded from and/or saved to configuratio...
uint64_t TCameraPoseID
Unique IDs for camera frames (poses)
double maxSAD_TH
Minimum Euclidean Distance Between Sum of Absolute Differences.
@ featSIFT
Scale Invariant Feature Transform [LOWE'04].
void dumpToTextStream(mrpt::utils::CStream &out) const MRPT_OVERRIDE
This method should clearly display all the contents of the structure in textual form,...
TMatchingOptions()
Constructor.
@ descSURF
SURF descriptors.
One relative feature observation entry, used with some relative bundle-adjustment functions.
@ featHarris
Harris border and corner detector [HARRIS].
void saveToConfigFile(mrpt::utils::CConfigFileBase &cfg, const std::string §ion) const MRPT_OVERRIDE
This method saves the options to a ".ini"-like file or memory-stored string list.
std::vector< int > firstListCorrespondences
Contains the indexes within the second list corresponding to the first one.
TFeatureType
Types of features - This means that the point has been detected with this algorithm,...
float stdPixel
Standard deviation of the error in feature detection.
bool enable_robust_1to1_match
Whether or not only permit matches that are consistent from left->right and right->left.
bool operator==(const TMatchingOptions &o) const
TMultiResDescMatchOptions()
Default constructor.
std::vector< double > scales
The set of scales relatives to the base patch.
uint32_t timesSeenThreshold
The minimum number of frames for a certain feature to be considered stable.
mrpt::aligned_containers< mrpt::poses::CPose3D >::vector_t TFramePosesVec
A list of camera frames (6D poses), which assumes indexes are unique, consecutive IDs.
bool addMatches
Whether or not to add the matches found into the input matched list (if false the input list will be ...
uint32_t minFeaturesToBeLost
The minimum number of features allowed in the system to not be considered to be lost.
A numeric matrix of compile-time fixed size.
@ mmSAD
Matching by sum of absolute differences of the image patches.
@ status_IDLE
Inactive (right after detection, and before being tried to track)
float minCC_TH
Minimum Value of the Cross Correlation.
One feature observation entry, used within sequences with TSequenceFeatureObservations.
@ featBCD
Binary corder detector.
@ featBeacon
A especial case: this is not an image feature, but a 2D/3D beacon (used for range-only SLAM from mrpt...
TCameraPoseID id_frame
A unique ID of a "frame" (camera position) from where the feature was observed.
uint64_t TLandmarkID
Unique IDs for landmarks.
double maxDepthThreshold
The maximum allowed depth for the matching. If its computed depth is larger than this,...
@ status_OOB
Feature fell Out Of Bounds (out of the image limits, too close to image borders)
void loadFromConfigFile(const mrpt::utils::CConfigFileBase &source, const std::string §ion) MRPT_OVERRIDE
This method load the options from a ".ini"-like file or memory-stored string list.
@ featSURF
Speeded Up Robust Feature [BAY'06].
void loadFromConfigFile(const mrpt::utils::CConfigFileBase &source, const std::string §ion) MRPT_OVERRIDE
This method load the options from a ".ini"-like file or memory-stored string list.
double sg3
The sigmas for the Gaussian kernels.
std::vector< mrpt::math::TPoint3D > TLandmarkLocationsVec
A list of landmarks (3D points), which assumes indexes are unique, consecutive IDs.
TSequenceFeatureObservations()
float maxZ
Maximum allowed distance.
bool useOriFilter
Whether or not use the filter based on orientation test.
Parameters associated to a stereo system.
mrpt::math::TPoint3D pos
The (x,y,z) location of the feature, wrt to the camera frame id_frame_base.
void saveToConfigFile(mrpt::utils::CConfigFileBase &cfg, const std::string §ion) const MRPT_OVERRIDE
This method saves the options to a ".ini"-like file or memory-stored string list.
bool computeHashCoeffs
Whether or not compute the coefficients for mantaining a HASH table of descriptors (for relocalizatio...
uint32_t lastSeenThreshold
The allowed number of frames since a certain feature was seen for the last time.
TUnc_Prop_Method
Method for propagating the feature's image coordinate uncertainty into 3D space.
bool hasFundamentalMatrix
Whether or not there is a fundamental matrix.
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...
A pair (x,y) of pixel coordinates (subpixel resolution).
void loadFromConfigFile(const mrpt::utils::CConfigFileBase &cfg, const std::string §ion) MRPT_OVERRIDE
This method load the options from a ".ini"-like file or memory-stored string list.
uint32_t searchAreaSize
Size of the squared area where to search for a match.
float maxY
Maximum allowed height.
uint32_t basePSize
The size of the base patch.
bool estimateDepth
Whether or not estimate the 3D position of the real features for the matches (only with parallelOptic...
@ status_TRACKED
Feature correctly tracked.
TMatchingMethod matching_method
Matching method.
@ status_LOST
Unable to track this feature (mismatch is too high for the given tracking window: lack of texture?...
std::map< mrpt::vision::TFeatureID, TRelativeFeaturePos > TRelativeFeaturePosMap
An index of feature IDs and their relative locations.
mrpt::math::CMatrixDouble33 F
Stereo Fundamental matrix.
float minZ
Maximum allowed distance.
mrpt::vision::TCameraPoseID id_frame_base
The ID of the camera frame which is the coordinate reference of pos.
std::vector< TYPE1, Eigen::aligned_allocator< TYPE1 > > vector_t
TUnc_Prop_Method uncPropagation
float EDD_RATIO
Boundary Ratio between the two lowest EDD.
#define MRPT_OVERRIDE
C++11 "override" for virtuals:
double cropValue
The SIFT-like descriptor is cropped at this value during normalization.
TStereoSystemParams()
Initilization of default parameters.
@ featNotDefined
Non-defined feature (also used for Occupancy features)
A structure containing options for the matching.
Page generated by Doxygen 1.8.20 for MRPT 1.4.0 SVN: at Thu Aug 27 02:40:23 UTC 2020 | | |