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.