Class implementing the ORB (oriented BRIEF) keypoint detector and descriptor extractor. More...
#include <opencv2/features2d.hpp>
Public Types | |
enum | ScoreType { HARRIS_SCORE =0, FAST_SCORE =1 } |
Public Member Functions | |
virtual void | clear () |
Clears the algorithm state. More... | |
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). More... | |
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. More... | |
virtual int | defaultNorm () const |
virtual int | descriptorSize () const |
virtual int | descriptorType () const |
virtual void | detect (InputArray image, std::vector< KeyPoint > &keypoints, InputArray mask=noArray()) |
Detects keypoints in an image (first variant) or image set (second variant). More... | |
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. More... | |
virtual void | detectAndCompute (InputArray image, InputArray mask, std::vector< KeyPoint > &keypoints, OutputArray descriptors, bool useProvidedKeypoints=false) |
Detects keypoints and computes the descriptors. More... | |
virtual bool | empty () const CV_OVERRIDE |
Return true if detector object is empty. More... | |
virtual String | getDefaultName () const CV_OVERRIDE |
Returns the algorithm string identifier. More... | |
virtual int | getEdgeThreshold () const =0 |
virtual int | getFastThreshold () const =0 |
virtual int | getFirstLevel () const =0 |
virtual int | getMaxFeatures () const =0 |
virtual int | getNLevels () const =0 |
virtual int | getPatchSize () const =0 |
virtual double | getScaleFactor () const =0 |
virtual ORB::ScoreType | getScoreType () const =0 |
virtual int | getWTA_K () const =0 |
void | read (const String &fileName) |
virtual void | read (const FileNode &) CV_OVERRIDE |
Reads algorithm parameters from a file storage. More... | |
virtual void | save (const String &filename) const |
Saves the algorithm to a file. More... | |
virtual void | setEdgeThreshold (int edgeThreshold)=0 |
virtual void | setFastThreshold (int fastThreshold)=0 |
virtual void | setFirstLevel (int firstLevel)=0 |
virtual void | setMaxFeatures (int maxFeatures)=0 |
virtual void | setNLevels (int nlevels)=0 |
virtual void | setPatchSize (int patchSize)=0 |
virtual void | setScaleFactor (double scaleFactor)=0 |
virtual void | setScoreType (ORB::ScoreType scoreType)=0 |
virtual void | setWTA_K (int wta_k)=0 |
void | write (const String &fileName) const |
virtual void | write (FileStorage &) const CV_OVERRIDE |
Stores algorithm parameters in a file storage. More... | |
void | write (const Ptr< FileStorage > &fs, const String &name=String()) const |
Static Public Member Functions | |
static Ptr< ORB > | create (int nfeatures=500, float scaleFactor=1.2f, int nlevels=8, int edgeThreshold=31, int firstLevel=0, int WTA_K=2, ORB::ScoreType scoreType=ORB::HARRIS_SCORE, int patchSize=31, int fastThreshold=20) |
The ORB constructor. More... | |
template<typename _Tp > | |
static Ptr< _Tp > | load (const String &filename, const String &objname=String()) |
Loads algorithm from the file. More... | |
template<typename _Tp > | |
static Ptr< _Tp > | loadFromString (const String &strModel, const String &objname=String()) |
Loads algorithm from a String. More... | |
Static Public Attributes | |
static const int | kBytes = 32 |
Protected Member Functions | |
void | writeFormat (FileStorage &fs) const |
Class implementing the ORB (oriented BRIEF) keypoint detector and descriptor extractor.
described in [81] . The algorithm uses FAST in pyramids to detect stable keypoints, selects the strongest features using FAST or Harris response, finds their orientation using first-order moments and computes the descriptors using BRIEF (where the coordinates of random point pairs (or k-tuples) are rotated according to the measured orientation).
enum cv::ORB::ScoreType |
|
inlinevirtualinherited |
Clears the algorithm state.
Reimplemented in cv::FlannBasedMatcher, and cv::DescriptorMatcher.
|
virtualinherited |
Computes the descriptors for a set of keypoints detected in an image (first variant) or image set (second variant).
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. |
|
virtualinherited |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
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. |
|
static |
The ORB constructor.
nfeatures | The maximum number of features to retain. |
scaleFactor | Pyramid decimation ratio, greater than 1. scaleFactor==2 means the classical pyramid, where each next level has 4x less pixels than the previous, but such a big scale factor will degrade feature matching scores dramatically. On the other hand, too close to 1 scale factor will mean that to cover certain scale range you will need more pyramid levels and so the speed will suffer. |
nlevels | The number of pyramid levels. The smallest level will have linear size equal to input_image_linear_size/pow(scaleFactor, nlevels - firstLevel). |
edgeThreshold | This is size of the border where the features are not detected. It should roughly match the patchSize parameter. |
firstLevel | The level of pyramid to put source image to. Previous layers are filled with upscaled source image. |
WTA_K | The number of points that produce each element of the oriented BRIEF descriptor. The default value 2 means the BRIEF where we take a random point pair and compare their brightnesses, so we get 0/1 response. Other possible values are 3 and 4. For example, 3 means that we take 3 random points (of course, those point coordinates are random, but they are generated from the pre-defined seed, so each element of BRIEF descriptor is computed deterministically from the pixel rectangle), find point of maximum brightness and output index of the winner (0, 1 or 2). Such output will occupy 2 bits, and therefore it will need a special variant of Hamming distance, denoted as NORM_HAMMING2 (2 bits per bin). When WTA_K=4, we take 4 random points to compute each bin (that will also occupy 2 bits with possible values 0, 1, 2 or 3). |
scoreType | The default HARRIS_SCORE means that Harris algorithm is used to rank features (the score is written to KeyPoint::score and is used to retain best nfeatures features); FAST_SCORE is alternative value of the parameter that produces slightly less stable keypoints, but it is a little faster to compute. |
patchSize | size of the patch used by the oriented BRIEF descriptor. Of course, on smaller pyramid layers the perceived image area covered by a feature will be larger. |
fastThreshold | the fast threshold |
|
virtualinherited |
|
virtualinherited |
|
virtualinherited |
|
virtualinherited |
Detects keypoints in an image (first variant) or image set (second variant).
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. |
|
virtualinherited |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
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]. |
|
virtualinherited |
Detects keypoints and computes the descriptors.
|
virtualinherited |
Return true if detector object is empty.
Reimplemented from cv::Algorithm.
|
virtual |
Returns the algorithm string identifier.
This string is used as top level xml/yml node tag when the object is saved to a file or string.
Reimplemented from cv::Feature2D.
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
inlinestaticinherited |
Loads algorithm from the file.
filename | Name of the file to read. |
objname | The optional name of the node to read (if empty, the first top-level node will be used) |
This is static template method of Algorithm. It's usage is following (in the case of SVM):
In order to make this method work, the derived class must overwrite Algorithm::read(const FileNode& fn).
References CV_Assert, cv::FileNode::empty(), cv::FileStorage::getFirstTopLevelNode(), cv::FileStorage::isOpened(), and cv::FileStorage::READ.
|
inlinestaticinherited |
Loads algorithm from a String.
strModel | The string variable containing the model you want to load. |
objname | The optional name of the node to read (if empty, the first top-level node will be used) |
This is static template method of Algorithm. It's usage is following (in the case of SVM):
References CV_WRAP, cv::FileNode::empty(), cv::FileStorage::getFirstTopLevelNode(), cv::FileStorage::MEMORY, and cv::FileStorage::READ.
|
inherited |
|
virtualinherited |
Reads algorithm parameters from a file storage.
Reimplemented from cv::Algorithm.
|
virtualinherited |
Saves the algorithm to a file.
In order to make this method work, the derived class must implement Algorithm::write(FileStorage& fs).
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
inherited |
|
virtualinherited |
Stores algorithm parameters in a file storage.
Reimplemented from cv::Algorithm.
|
inlineinherited |
|
protectedinherited |
|
static |