Class implementing the ORB (oriented BRIEF) keypoint detector and descriptor extractor. More...
#include "cudafeatures2d.hpp"
Public Types | |
enum | { kBytes = 32, HARRIS_SCORE =0, FAST_SCORE =1 } |
enum | { X_ROW = 0, Y_ROW, RESPONSE_ROW, ANGLE_ROW, OCTAVE_ROW, SIZE_ROW, ROWS_COUNT } |
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 void | computeAsync (InputArray image, OutputArray keypoints, OutputArray descriptors, Stream &stream=Stream::Null()) |
Computes the descriptors for a set of keypoints detected in an image. More... | |
virtual void | convert (InputArray gpu_keypoints, std::vector< KeyPoint > &keypoints)=0 |
Converts keypoints array from internal representation to standard vector. 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 void | detectAndComputeAsync (InputArray image, InputArray mask, OutputArray keypoints, OutputArray descriptors, bool useProvidedKeypoints=false, Stream &stream=Stream::Null()) |
Detects keypoints and computes the descriptors. More... | |
virtual void | detectAsync (InputArray image, OutputArray keypoints, InputArray mask=noArray(), Stream &stream=Stream::Null()) |
Detects keypoints in an image. More... | |
virtual bool | empty () const |
Return true if detector object is empty. More... | |
virtual bool | getBlurForDescriptor () const =0 |
virtual String | getDefaultName () const |
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 int | getScoreType () const =0 |
virtual int | getWTA_K () const =0 |
void | read (const String &fileName) |
virtual void | read (const FileNode &) |
Reads algorithm parameters from a file storage. More... | |
virtual void | save (const String &filename) const |
Saves the algorithm to a file. More... | |
virtual void | setBlurForDescriptor (bool blurForDescriptor)=0 |
if true, image will be blurred before descriptors calculation 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 (int scoreType)=0 |
virtual void | setWTA_K (int wta_k)=0 |
void | write (const String &fileName) const |
virtual void | write (FileStorage &) const |
Stores algorithm parameters in a file storage. More... | |
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, int scoreType=ORB::HARRIS_SCORE, int patchSize=31, int fastThreshold=20) |
The ORB constructor. More... | |
static Ptr< ORB > | create (int nfeatures=500, float scaleFactor=1.2f, int nlevels=8, int edgeThreshold=31, int firstLevel=0, int WTA_K=2, int scoreType=ORB::HARRIS_SCORE, int patchSize=31, int fastThreshold=20, bool blurForDescriptor=false) |
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... | |
Protected Member Functions | |
void | writeFormat (FileStorage &fs) const |
Class implementing the ORB (oriented BRIEF) keypoint detector and descriptor extractor.
|
inlinevirtualinherited |
Clears the algorithm state.
Reimplemented in cv::FlannBasedMatcher, cv::DescriptorMatcher, and cv::cuda::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. |
|
virtualinherited |
Computes the descriptors for a set of keypoints detected in an image.
image | Image. |
keypoints | Input collection of keypoints. |
descriptors | Computed descriptors. Row j is the descriptor for j-th keypoint. |
stream | CUDA stream. |
|
pure virtualinherited |
Converts keypoints array from internal representation to standard vector.
|
staticinherited |
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). |
edgeThreshold | This is size of the border where the features are not detected. It should roughly match the patchSize parameter. |
firstLevel | It should be 0 in the current implementation. |
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 |
|
static |
|
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. |
Reimplemented in cv::AgastFeatureDetector_Impl.
|
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 |
Detects keypoints and computes the descriptors.
|
virtualinherited |
Detects keypoints in an image.
image | Image. |
keypoints | The detected keypoints. |
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. |
stream | CUDA stream. |
|
virtualinherited |
Return true if detector object is empty.
Reimplemented from cv::Algorithm.
|
pure virtual |
|
virtualinherited |
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.
|
pure virtualinherited |
|
pure virtualinherited |
|
pure virtualinherited |
|
pure virtualinherited |
|
pure virtualinherited |
|
pure virtualinherited |
|
pure virtualinherited |
|
pure virtualinherited |
|
pure virtualinherited |
|
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::Ptr< T >::empty(), cv::FileNode::empty(), cv::FileStorage::getFirstTopLevelNode(), 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::Ptr< T >::empty(), 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 |
if true, image will be blurred before descriptors calculation
|
pure virtualinherited |
|
pure virtualinherited |
|
pure virtualinherited |
|
pure virtualinherited |
|
pure virtualinherited |
|
pure virtualinherited |
|
pure virtualinherited |
|
pure virtualinherited |
|
pure virtualinherited |
|
inherited |
|
virtualinherited |
Stores algorithm parameters in a file storage.
Reimplemented from cv::Algorithm.
|
protectedinherited |