Go to the documentation of this file.
24 class CMatchedFeatureList;
96 std::vector<uint8_t>
ORB;
104 return (multiSIFTDescriptors.size() > 0 && multiSIFTDescriptors[0].size() > 0);
144 bool normalize_distances =
true )
const;
154 bool normalize_distances =
true )
const;
199 bool normalize_distances,
200 bool dont_shift_angle );
239 void getByMultiIDs(
const std::vector<TFeatureID> &IDs, std::vector<CFeaturePtr> &out, std::vector<int> &outIndex )
const;
248 CFeaturePtr
nearest(
const float x,
const float y,
double &max_dist )
const;
279 inline bool empty()
const {
return m_feats.empty(); }
280 inline size_t size()
const {
return m_feats.size(); }
282 inline void clear() { m_feats.clear(); mark_kdtree_as_outdated(); }
283 inline void resize(
size_t N) { m_feats.resize(N); mark_kdtree_as_outdated(); }
285 inline void push_back(
const CFeaturePtr &f) { mark_kdtree_as_outdated(); m_feats.push_back(f); }
287 inline CFeaturePtr & operator [](
const unsigned int index) {
return m_feats[index]; }
288 inline const CFeaturePtr & operator [](
const unsigned int index)
const {
return m_feats[index]; }
302 if (dim==0)
return m_feats[idx]->x;
303 else return m_feats[idx]->y;
312 const float d0 = p1[0] - m_feats[idx_p2]->x;
313 const float d1 = p1[1] - m_feats[idx_p2]->y;
320 template <
typename BBOX>
331 inline float getFeatureX(
size_t i)
const {
return m_feats[i]->x; }
332 inline float getFeatureY(
size_t i)
const {
return m_feats[i]->y; }
335 inline bool isPointFeature(
size_t i)
const {
return m_feats[i]->isPointFeature(); }
336 inline float getScale(
size_t i)
const {
return m_feats[i]->scale; }
346 inline void setScale(
size_t i,
float s) { m_feats[i]->scale=s; }
388 setLeftMaxID(leftID);
389 setRightMaxID(rightID);
bool hasDescriptorPolarImg() const
Whether this feature has this kind of descriptor.
void setFeatureYf(size_t i, float y)
TFeatureID getFeatureID(size_t i) const
TFeatureType get_type() const
The type of the first feature in the list.
bool hasDescriptorSURF() const
Whether this feature has this kind of descriptor.
uint8_t user_flags
A field for any other flags needed by the user (this has not a predefined meaning)
void getMaxID(const TListIdx &idx, TFeatureID &firstListID, TFeatureID &secondListID)
Returns the maximum ID of the features in the list.
std::deque< std::vector< std::vector< int32_t > > > multiHashCoeffs
A set of vectors containing the coefficients for a HASH table of descriptors.
std::vector< uint8_t > ORB
ORB feature descriptor
void setFeatureID(size_t i, TFeatureID id)
void setMaxIDs(const TFeatureID &leftID, const TFeatureID &rightID)
EIGEN_STRONG_INLINE iterator begin()
void copyListFrom(const CFeatureList &otherList)
Copies the content of another CFeatureList inside this one.
std::deque< std::vector< std::vector< int32_t > > > multiSIFTDescriptors
A set of SIFT-like descriptors for each orientation and scale of the multiResolution feature (there i...
float descriptorPolarImgDistanceTo(const CFeature &oFeature, float &minDistAngle, bool normalize_distances=true) const
Returns the minimum Euclidean Distance between "this" and the "other" polar image descriptor,...
CFeaturePtr getByID(const TFeatureID &ID, int &out_idx) const
const Scalar * const_iterator
TDescriptorType
The bitwise OR combination of values of TDescriptorType are used in CFeatureExtraction::computeDescri...
float getScale(size_t i) const
mrpt::math::TPoint3D p3D
The estimated 3D point of this feature wrt its camera.
bool hasDescriptorSIFT() const
void setFeatureY(size_t i, float y)
bool kdtree_get_bbox(BBOX &bb) const
uint64_t TFeatureID
Definition of a feature ID.
float response
A measure of the "goodness" of the feature (old name: KLT_val)
const_iterator begin() const
float getFeatureResponse(size_t i) const
Classes for computer vision, detectors, features, etc.
CFeaturePtr getByID(const TFeatureID &ID, const TListIdx &idx)
Returns a smart pointer to the feature with the provided ID or a empty one if not found.
bool hasDescriptorMultiSIFT() const
Whether this feature has this kind of descriptor.
void setFeatureX(size_t i, float x)
void loadFromTextFile(const std::string &fileName)
Save feature list to a text file.
size_t size(const MATRIXLIKE &m, int dim)
#define MRPT_UNUSED_PARAM(a)
Can be used to avoid "not used parameters" warnings from the compiler.
bool getFirstDescriptorAsMatrix(mrpt::math::CMatrixFloat &desc) const
Return the first found descriptor, as a matrix.
void setFeatureXf(size_t i, float x)
CFeaturePtr getByID(const TFeatureID &ID) const
Get a reference to a Feature from its ID.
std::vector< float > SURF
SURF feature descriptor.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
float descriptorDistanceTo(const CFeature &oFeature, TDescriptorType descriptorToUse=descAny, bool normalize_distances=true) const
Computes the Euclidean Distance between this feature's and other feature's descriptors,...
bool hasDescriptorSpinImg() const
bool hasDescriptorLogPolarImg() const
Whether this feature has this kind of descriptor.
void saveToTextFile(const std::string &fileName, bool APPEND=false)
Save feature list to a text file.
A class for storing images as grayscale or RGB bitmaps.
@ descAny
Used in some methods to mean "any of the present descriptors".
uint16_t SpinImg_range_rows
The number of rows (corresponding to range bins in the 2D histogram) of the original matrix from whic...
TFeatureID getMaxID() const
Get the maximum ID into the list.
uint16_t patchSize
Size of the patch (patchSize x patchSize) (it must be an odd number)
void dumpToTextStream(mrpt::utils::CStream &out) const
Dump feature information into a text stream.
mrpt::utils::CImage patch
A patch of the image surrounding the feature.
void dumpToConsole() const
double initialDepth
The estimated depth in 3D of this feature wrt the camera that took its image.
float orientation
Main orientation of the feature.
A matrix of dynamic size.
A list of visual features, to be used as output by detectors, as input/output by trackers,...
float descriptorSpinImgDistanceTo(const CFeature &oFeature, bool normalize_distances=true) const
Computes the Euclidean Distance between "this" and the "other" descriptors.
mrpt::math::CMatrix LogPolarImg
A log-polar image centered at the interest point.
std::vector< uint8_t > SIFT
SIFT feature descriptor.
const_reverse_iterator rend() const
static float internal_distanceBetweenPolarImages(const mrpt::math::CMatrix &desc1, const mrpt::math::CMatrix &desc2, float &minDistAngle, bool normalize_distances, bool dont_shift_angle)
Internal function used by "descriptorLogPolarImgDistanceTo" and "descriptorPolarImgDistanceTo".
const_iterator end() const
void saveToTextFile(const std::string &filename, bool APPEND=false)
Save the feature to a text file in this format: "%% Dump of mrpt::vision::CFeatureList....
virtual ~CMatchedFeatureList()
Virtual destructor.
#define ASSERTDEB_(f)
Defines an assertion mechanism - only when compiled in debug.
CMatchedFeatureList()
Constructor.
This class is a "CSerializable" wrapper for "CMatrixFloat".
TFeatureID ID
ID of the feature.
float descriptorSIFTDistanceTo(const CFeature &oFeature, bool normalize_distances=true) const
Computes the Euclidean Distance between "this" and the "other" descriptors.
This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...
uint8_t descriptorORBDistanceTo(const CFeature &oFeature) const
Computes the Hamming distance "this" and the "other" descriptor ORB descriptor.
bool polarImgsNoRotation
If set to true (manually, default=false) the call to "descriptorDistanceTo" will not consider all the...
uint16_t nTimesSeen
Number of frames it has been seen in a sequence of images.
#define MRPT_DECLARE_TTYPENAME_PTR_NAMESPACE(_TYPE, __NS)
float descriptorLogPolarImgDistanceTo(const CFeature &oFeature, float &minDistAngle, bool normalize_distances=true) const
Returns the minimum Euclidean Distance between "this" and the "other" log-polar image descriptor,...
bool isPointFeature() const
Return false only for Blob detectors (SIFT, SURF)
#define DEFINE_SERIALIZABLE_POST_CUSTOM_BASE_LINKAGE(class_name, base_name, _LINKAGE_)
void mark_kdtree_as_outdated() const
Call this when the list of features has been modified so the KD-tree is marked as outdated.
reverse_iterator rbegin()
size_t kdtree_get_point_count() const
Must return the number of data points.
TFeatureTrackStatus getTrackStatus(size_t i)
TFeatureType
Types of features - This means that the point has been detected with this algorithm,...
iterator erase(const iterator &it)
TFeatureTrackStatus track_status
Status of the feature tracking process (old name: KLT_status)
float patchCorrelationTo(const CFeature &oFeature) const
Computes the normalized cross-correlation between the patches of this and another feature (normalized...
bool hasDescriptorORB() const
Whether this feature has this kind of descriptor.
float scale
Feature scale into the scale space.
struct VISION_IMPEXP mrpt::vision::CFeature::TDescriptors descriptors
void setTrackStatus(size_t i, TFeatureTrackStatus s)
std::vector< float > SpinImg
The 2D histogram as a single row.
void push_back(const CFeaturePtr &f)
The virtual base class which provides a unified interface for all persistent objects in MRPT.
virtual ~CFeatureList()
Virtual destructor.
CFeaturePtr nearest(const float x, const float y, double &max_dist) const
Get a reference to the nearest feature to the a given 2D point (version returning distance to closest...
#define DEFINE_SERIALIZABLE_PRE_CUSTOM_BASE_LINKAGE(class_name, base_name, _LINKAGE_)
This declaration must be inserted in all CSerializable classes definition, before the class declarati...
void setLeftMaxID(const TFeatureID &leftID)
Explicitly set the max IDs values to certain values.
TInternalFeatList::iterator iterator
uint16_t nTimesLastSeen
Number of frames since it was seen for the last time.
void setFeatureResponse(size_t i, float r)
#define DEFINE_SERIALIZABLE(class_name)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
float getFeatureX(size_t i) const
std::deque< double > multiScales
A set of scales where the multi-resolution descriptor has been computed.
TFeatureType get_type() const
Get the type of the feature.
float getFeatureY(size_t i) const
void getBothFeatureLists(CFeatureList &list1, CFeatureList &list2)
Returns the matching features as two separate CFeatureLists.
float y
Coordinates in the image.
TInternalFeatList::const_iterator const_iterator
void saveToTextFile(const std::string &fileName)
Save list of matched features to a text file.
EIGEN_STRONG_INLINE bool empty() const
bool isPointFeature(size_t i) const
TInternalFeatList::const_reverse_iterator const_reverse_iterator
uint16_t nTimesNotSeen
Number of frames it has not been seen in a sequence of images.
float descriptorSURFDistanceTo(const CFeature &oFeature, bool normalize_distances=true) const
Computes the Euclidean Distance between "this" and the "other" descriptors.
virtual ~CFeature()
Virtual destructor.
void setScale(size_t i, float s)
CFeatureList()
Constructor.
std::vector< CFeaturePtr > TInternalFeatList
const_reverse_iterator rbegin() const
All the possible descriptors this feature may have.
float kdtree_distance(const float *p1, const size_t idx_p2, size_t size) const
Returns the distance between the vector "p1[0:size-1]" and the data point with index "idx_p2" stored ...
TFeatureType type
Type of the feature: featNotDefined, featSIFT, featKLT, featHarris, featSURF, featBeacon.
double depth
The estimated depth in 3D of this feature wrt the camera in the current frame.
float kdtree_get_pt(const size_t idx, int dim) const
Returns the dim'th component of the idx'th point in the class:
std::deque< std::vector< double > > multiOrientations
A vector of main orientations (there is a vector of orientations for each scale)
A generic 2D feature from an image, extracted with CFeatureExtraction Each feature may have one or mo...
TFeatureType get_type() const
The type of the first feature in the list.
TInternalFeatList::reverse_iterator reverse_iterator
void getByMultiIDs(const std::vector< TFeatureID > &IDs, std::vector< CFeaturePtr > &out, std::vector< int > &outIndex) const
Get a vector of references to a subset of features from their IDs.
void updateMaxID(const TListIdx &idx)
Updates the value of the maximum ID of the features in the matched list, i.e.
void setRightMaxID(const TFeatureID &rightID)
TInternalFeatList m_feats
The actual container with the list of features.
void mark_as_outdated() const
@ featNotDefined
Non-defined feature (also used for Occupancy features)
mrpt::math::CMatrix PolarImg
A polar image centered at the interest point.
Page generated by Doxygen 1.8.20 for MRPT 1.4.0 SVN: at Thu Aug 27 02:40:23 UTC 2020 | | |