class cv::ShapeContextDistanceExtractor

Overview

Implementation of the Shape Context descriptor and matching algorithm. More…

#include <shape_distance.hpp>

class ShapeContextDistanceExtractor: public cv::ShapeDistanceExtractor
{
public:
    // methods

    virtual
    int
    getAngularBins() const = 0;

    virtual
    float
    getBendingEnergyWeight() const = 0;

    virtual
    Ptr<HistogramCostExtractor>
    getCostExtractor() const = 0;

    virtual
    float
    getImageAppearanceWeight() const = 0;

    virtual
    void
    getImages(
        OutputArray image1,
        OutputArray image2
        ) const = 0;

    virtual
    float
    getInnerRadius() const = 0;

    virtual
    int
    getIterations() const = 0;

    virtual
    float
    getOuterRadius() const = 0;

    virtual
    int
    getRadialBins() const = 0;

    virtual
    bool
    getRotationInvariant() const = 0;

    virtual
    float
    getShapeContextWeight() const = 0;

    virtual
    float
    getStdDev() const = 0;

    virtual
    Ptr<ShapeTransformer>
    getTransformAlgorithm() const = 0;

    virtual
    void
    setAngularBins(int nAngularBins) = 0;

    virtual
    void
    setBendingEnergyWeight(float bendingEnergyWeight) = 0;

    virtual
    void
    setCostExtractor(Ptr<HistogramCostExtractor> comparer) = 0;

    virtual
    void
    setImageAppearanceWeight(float imageAppearanceWeight) = 0;

    virtual
    void
    setImages(
        InputArray image1,
        InputArray image2
        ) = 0;

    virtual
    void
    setInnerRadius(float innerRadius) = 0;

    virtual
    void
    setIterations(int iterations) = 0;

    virtual
    void
    setOuterRadius(float outerRadius) = 0;

    virtual
    void
    setRadialBins(int nRadialBins) = 0;

    virtual
    void
    setRotationInvariant(bool rotationInvariant) = 0;

    virtual
    void
    setShapeContextWeight(float shapeContextWeight) = 0;

    virtual
    void
    setStdDev(float sigma) = 0;

    virtual
    void
    setTransformAlgorithm(Ptr<ShapeTransformer> transformer) = 0;
};

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);

    virtual
    float
    computeDistance(
        InputArray contour1,
        InputArray contour2
        ) = 0;

protected:
    // methods

    void
    writeFormat(FileStorage& fs) const;

Detailed Documentation

Implementation of the Shape Context descriptor and matching algorithm.

proposed by Belongie et al. in “Shape Matching and Object Recognition Using Shape Contexts” (PAMI 2002). This implementation is packaged in a generic scheme, in order to allow you the implementation of the common variations of the original pipeline.

Methods

virtual
void
setAngularBins(int nAngularBins) = 0

Establish the number of angular bins for the Shape Context Descriptor used in the shape matching pipeline.

Parameters:

nAngularBins The number of angular bins in the shape context descriptor.
virtual
void
setBendingEnergyWeight(float bendingEnergyWeight) = 0

Set the weight of the Bending Energy in the final value of the shape distance. The bending energy definition depends on what transformation is being used to align the shapes. The final value of the shape distance is a user-defined linear combination of the shape context distance, an image appearance distance, and a bending energy.

Parameters:

bendingEnergyWeight The weight of the Bending Energy in the final distance value.
virtual
void
setCostExtractor(Ptr<HistogramCostExtractor> comparer) = 0

Set the algorithm used for building the shape context descriptor cost matrix.

Parameters:

comparer Smart pointer to a HistogramCostExtractor, an algorithm that defines the cost matrix between descriptors.
virtual
void
setImageAppearanceWeight(float imageAppearanceWeight) = 0

Set the weight of the Image Appearance cost in the final value of the shape distance. The image appearance cost is defined as the sum of squared brightness differences in Gaussian windows around corresponding image points. The final value of the shape distance is a user-defined linear combination of the shape context distance, an image appearance distance, and a bending energy. If this value is set to a number different from 0, is mandatory to set the images that correspond to each shape.

Parameters:

imageAppearanceWeight The weight of the appearance cost in the final distance value.
virtual
void
setImages(
    InputArray image1,
    InputArray image2
    ) = 0

Set the images that correspond to each shape. This images are used in the calculation of the Image Appearance cost.

Parameters:

image1 Image corresponding to the shape defined by contours1.
image2 Image corresponding to the shape defined by contours2.
virtual
void
setInnerRadius(float innerRadius) = 0

Set the inner radius of the shape context descriptor.

Parameters:

innerRadius The value of the inner radius.
virtual
void
setOuterRadius(float outerRadius) = 0

Set the outer radius of the shape context descriptor.

Parameters:

outerRadius The value of the outer radius.
virtual
void
setRadialBins(int nRadialBins) = 0

Establish the number of radial bins for the Shape Context Descriptor used in the shape matching pipeline.

Parameters:

nRadialBins The number of radial bins in the shape context descriptor.
virtual
void
setShapeContextWeight(float shapeContextWeight) = 0

Set the weight of the shape context distance in the final value of the shape distance. The shape context distance between two shapes is defined as the symmetric sum of shape context matching costs over best matching points. The final value of the shape distance is a user-defined linear combination of the shape context distance, an image appearance distance, and a bending energy.

Parameters:

shapeContextWeight The weight of the shape context distance in the final distance value.
virtual
void
setStdDev(float sigma) = 0

Set the value of the standard deviation for the Gaussian window for the image appearance cost.

Parameters:

sigma Standard Deviation.
virtual
void
setTransformAlgorithm(Ptr<ShapeTransformer> transformer) = 0

Set the algorithm used for aligning the shapes.

Parameters:

transformer Smart pointer to a ShapeTransformer, an algorithm that defines the aligning transformation.