class cv::Feature2D
Overview
Abstract base class for 2D image feature detectors and descriptor extractors. Moreā¦
#include <features2d.hpp> class Feature2D: public cv::Algorithm { public: // methods virtual void compute( InputArray image, std::vector<KeyPoint>& keypoints, OutputArray descriptors ); virtual void compute( InputArrayOfArrays images, std::vector<std::vector<KeyPoint>>& keypoints, OutputArrayOfArrays descriptors ); virtual int defaultNorm() const; virtual int descriptorSize() const; virtual int descriptorType() const; virtual void detect( InputArray image, std::vector<KeyPoint>& keypoints, InputArray mask = noArray() ); virtual void detect( InputArrayOfArrays images, std::vector<std::vector<KeyPoint>>& keypoints, InputArrayOfArrays masks = noArray() ); virtual void detectAndCompute( InputArray image, InputArray mask, std::vector<KeyPoint>& keypoints, OutputArray descriptors, bool useProvidedKeypoints = false ); virtual bool empty() const; void read(const String& fileName); virtual void read(const FileNode& fn); void write(const String& fileName) const; virtual void write(FileStorage& fs) const; }; // direct descendants class AgastFeatureDetector; class AKAZE; class BRISK; class FastFeatureDetector; class GFTTDetector; class KAZE; class MSER; class ORB; class SimpleBlobDetector;
Inherited Members
public: // methods virtual void clear(); virtual bool empty() const; virtual String getDefaultName() const; virtual void read(const FileNode& fn); virtual void save(const String& filename) const; virtual void write(FileStorage& fs) const; template <typename _Tp> static Ptr<_Tp> load( const String& filename, const String& objname = String() ); template <typename _Tp> static Ptr<_Tp> loadFromString( const String& strModel, const String& objname = String() ); template <typename _Tp> static Ptr<_Tp> read(const FileNode& fn); protected: // methods void writeFormat(FileStorage& fs) const;
Detailed Documentation
Abstract base class for 2D image feature detectors and descriptor extractors.
Methods
virtual void compute( InputArray image, std::vector<KeyPoint>& keypoints, OutputArray descriptors )
Computes the descriptors for a set of keypoints detected in an image (first variant) or image set (second variant).
Parameters:
image | Image. |
keypoints | Input collection of keypoints. Keypoints for which a descriptor cannot be computed are removed. Sometimes new keypoints can be added, for example: SIFT duplicates keypoint with several dominant orientations (for each orientation). |
descriptors | Computed descriptors. In the second variant of the method descriptors[i] are descriptors computed for a keypoints[i]. Row j is the keypoints (or keypoints[i]) is the descriptor for keypoint j-th keypoint. |
virtual void compute( InputArrayOfArrays images, std::vector<std::vector<KeyPoint>>& keypoints, OutputArrayOfArrays descriptors )
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Parameters:
images | Image set. |
keypoints | Input collection of keypoints. Keypoints for which a descriptor cannot be computed are removed. Sometimes new keypoints can be added, for example: SIFT duplicates keypoint with several dominant orientations (for each orientation). |
descriptors | Computed descriptors. In the second variant of the method descriptors[i] are descriptors computed for a keypoints[i]. Row j is the keypoints (or keypoints[i]) is the descriptor for keypoint j-th keypoint. |
virtual void detect( InputArray image, std::vector<KeyPoint>& keypoints, InputArray mask = noArray() )
Detects keypoints in an image (first variant) or image set (second variant).
Parameters:
image | Image. |
keypoints | The detected keypoints. In the second variant of the method keypoints[i] is a set of keypoints detected in images[i] . |
mask | Mask specifying where to look for keypoints (optional). It must be a 8-bit integer matrix with non-zero values in the region of interest. |
virtual void detect( InputArrayOfArrays images, std::vector<std::vector<KeyPoint>>& keypoints, InputArrayOfArrays masks = noArray() )
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Parameters:
images | Image set. |
keypoints | The detected keypoints. In the second variant of the method keypoints[i] is a set of keypoints detected in images[i] . |
masks | Masks for each input image specifying where to look for keypoints (optional). masks[i] is a mask for images[i]. |
virtual void detectAndCompute( InputArray image, InputArray mask, std::vector<KeyPoint>& keypoints, OutputArray descriptors, bool useProvidedKeypoints = false )
Detects keypoints and computes the descriptors
virtual bool empty() const
Return true if detector object is empty.
virtual void read(const FileNode& fn)
Reads algorithm parameters from a file storage.
virtual void write(FileStorage& fs) const
Stores algorithm parameters in a file storage.