Class cv::ORB#

Class implementing the ORB (oriented BRIEF) keypoint detector and descriptor extractor. View details

Collaboration diagram for cv::ORB:

Public Types#

Public Member Functions#

Public Member Functions inherited from cv::Feature2D
Public Member Functions inherited from cv::Algorithm

Return

Name

Description

Algorithm()

~Algorithm()

void

clear()

Clears the algorithm state.

bool

empty()

Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read.

String

getDefaultName()

void

read(const FileNode & fn)

Reads algorithm parameters from a file storage.

void

save(const String & filename)

void

write(
    const Ptr< FileStorage > & fs,
    const String & name = String() )

void

write(FileStorage & fs)

Stores algorithm parameters in a file storage.

void

write(
    FileStorage & fs,
    const String & name )

Static Public Member Functions#

Static Public Member Functions inherited from cv::Algorithm

Return

Name

Description

static Ptr< _Tp >

load(
    const String & filename,
    const String & objname = String() )

Loads algorithm from the file.

static Ptr< _Tp >

loadFromString(
    const String & strModel,
    const String & objname = String() )

Loads algorithm from a String.

static Ptr< _Tp >

read(const FileNode & fn)

Reads algorithm from the file node.

Additional Inherited Members#

Protected Member Functions inherited from cv::Algorithm

Return

Name

Description

void

writeFormat(FileStorage & fs)

Detailed Description#

Class implementing the ORB (oriented BRIEF) keypoint detector and descriptor extractor.

described in RRKB11 . 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).

Examples
samples/cpp/stitching_detailed.cpp.

Member Enumeration Documentation#

enum ScoreType

HARRIS_SCORE
Python: cv.ORB_HARRIS_SCORE

FAST_SCORE
Python: cv.ORB_FAST_SCORE

Member Function Documentation#

create()#

static Ptr< ORB > cv::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 )

Python:

cv.ORB.create([, nfeatures[, scaleFactor[, nlevels[, edgeThreshold[, firstLevel[, WTA_K[, scoreType[, patchSize[, fastThreshold]]]]]]]]]) -> retval
cv.ORB_create([, nfeatures[, scaleFactor[, nlevels[, edgeThreshold[, firstLevel[, WTA_K[, scoreType[, patchSize[, fastThreshold]]]]]]]]]) -> retval

The ORB constructor.

Parameters

  • 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

getDefaultName()#

String cv::ORB::getDefaultName()

Python:

cv.ORB.getDefaultName() -> retval

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.

getEdgeThreshold()#

int cv::ORB::getEdgeThreshold()

Python:

cv.ORB.getEdgeThreshold() -> retval

getFastThreshold()#

int cv::ORB::getFastThreshold()

Python:

cv.ORB.getFastThreshold() -> retval

getFirstLevel()#

int cv::ORB::getFirstLevel()

Python:

cv.ORB.getFirstLevel() -> retval

getMaxFeatures()#

int cv::ORB::getMaxFeatures()

Python:

cv.ORB.getMaxFeatures() -> retval

getNLevels()#

int cv::ORB::getNLevels()

Python:

cv.ORB.getNLevels() -> retval

getPatchSize()#

int cv::ORB::getPatchSize()

Python:

cv.ORB.getPatchSize() -> retval

getScaleFactor()#

double cv::ORB::getScaleFactor()

Python:

cv.ORB.getScaleFactor() -> retval

getScoreType()#

ORB::ScoreType cv::ORB::getScoreType()

Python:

cv.ORB.getScoreType() -> retval

getWTA_K()#

int cv::ORB::getWTA_K()

Python:

cv.ORB.getWTA_K() -> retval

setEdgeThreshold()#

void cv::ORB::setEdgeThreshold(int edgeThreshold)

Python:

cv.ORB.setEdgeThreshold(edgeThreshold)

setFastThreshold()#

void cv::ORB::setFastThreshold(int fastThreshold)

Python:

cv.ORB.setFastThreshold(fastThreshold)

setFirstLevel()#

void cv::ORB::setFirstLevel(int firstLevel)

Python:

cv.ORB.setFirstLevel(firstLevel)

setMaxFeatures()#

void cv::ORB::setMaxFeatures(int maxFeatures)

Python:

cv.ORB.setMaxFeatures(maxFeatures)

setNLevels()#

void cv::ORB::setNLevels(int nlevels)

Python:

cv.ORB.setNLevels(nlevels)

setPatchSize()#

void cv::ORB::setPatchSize(int patchSize)

Python:

cv.ORB.setPatchSize(patchSize)

setScaleFactor()#

void cv::ORB::setScaleFactor(double scaleFactor)

Python:

cv.ORB.setScaleFactor(scaleFactor)

setScoreType()#

void cv::ORB::setScoreType(ORB::ScoreType scoreType)

Python:

cv.ORB.setScoreType(scoreType)

setWTA_K()#

void cv::ORB::setWTA_K(int wta_k)

Python:

cv.ORB.setWTA_K(wta_k)

Member Data Documentation#

kBytes#

static const int cv::ORB::kBytes = 32

Source file#

The documentation for this class was generated from the following file: