Class cv::xfeatures2d::SURF#

Class for extracting Speeded Up Robust Features from an image [23] . View details

Collaboration diagram for cv::xfeatures2d::SURF:

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 for extracting Speeded Up Robust Features from an image Bay06 .

The algorithm parameters:

  • member int extended

    • 0 means that the basic descriptors (64 elements each) shall be computed

    • 1 means that the extended descriptors (128 elements each) shall be computed

  • member int upright

    • 0 means that detector computes orientation of each feature.

    • 1 means that the orientation is not computed (which is much, much faster). For example, if you match images from a stereo pair, or do image stitching, the matched features likely have very similar angles, and you can speed up feature extraction by setting upright=1.

  • member double hessianThreshold Threshold for the keypoint detector. Only features, whose hessian is larger than hessianThreshold are retained by the detector. Therefore, the larger the value, the less keypoints you will get. A good default value could be from 300 to 500, depending from the image contrast.

  • member int nOctaves The number of a gaussian pyramid octaves that the detector uses. It is set to 4 by default. If you want to get very large features, use the larger value. If you want just small features, decrease it.

  • member int nOctaveLayers The number of images within each octave of a gaussian pyramid. It is set to 2 by default.

Note

  • An example using the SURF feature detector can be found at opencv_source_code/samples/cpp/generic_descriptor_match.cpp

    • Another example using the SURF feature detector, extractor and matcher can be found at opencv_source_code/samples/cpp/matcher_simple.cpp

Examples
samples/cpp/stitching_detailed.cpp.

Member Function Documentation#

create()#

static Ptr< SURF > cv::xfeatures2d::SURF::create(
double hessianThreshold = 100,
int nOctaves = 4,
int nOctaveLayers = 3,
bool extended = false,
bool upright = false )

Parameters

  • hessianThreshold — Threshold for hessian keypoint detector used in SURF.

  • nOctaves — Number of pyramid octaves the keypoint detector will use.

  • nOctaveLayers — Number of octave layers within each octave.

  • extended — Extended descriptor flag (true - use extended 128-element descriptors; false - use 64-element descriptors).

  • upright — Up-right or rotated features flag (true - do not compute orientation of features; false - compute orientation).

getDefaultName()#

String cv::xfeatures2d::SURF::getDefaultName()

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.

getExtended()#

bool cv::xfeatures2d::SURF::getExtended()

getHessianThreshold()#

double cv::xfeatures2d::SURF::getHessianThreshold()

getNOctaveLayers()#

int cv::xfeatures2d::SURF::getNOctaveLayers()

getNOctaves()#

int cv::xfeatures2d::SURF::getNOctaves()

getUpright()#

bool cv::xfeatures2d::SURF::getUpright()

setExtended()#

void cv::xfeatures2d::SURF::setExtended(bool extended)

setHessianThreshold()#

void cv::xfeatures2d::SURF::setHessianThreshold(double hessianThreshold)

setNOctaveLayers()#

void cv::xfeatures2d::SURF::setNOctaveLayers(int nOctaveLayers)

setNOctaves()#

void cv::xfeatures2d::SURF::setNOctaves(int nOctaves)

setUpright()#

void cv::xfeatures2d::SURF::setUpright(bool upright)

Source file#

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