template class cvflann::Index

Overview

#include <flann_base.hpp>

template <typename Distance>
class Index: public cvflann::NNIndex
{
public:
    // typedefs

    typedef Distance::ResultType DistanceType;
    typedef Distance::ElementType ElementType;

    // construction

    Index(
        const Matrix<ElementType>& features,
        const IndexParams& params,
        Distance distance = Distance()
        );

    // methods

    virtual
    void
    buildIndex();

    virtual
    void
    findNeighbors(
        ResultSet<DistanceType>& result,
        const ElementType* vec,
        const SearchParams& searchParams
        );

    NNIndex<Distance>*
    getIndex();

    const IndexParams*
    getIndexParameters();

    virtual
    IndexParams
    getParameters() const;

    virtual
    flann_algorithm_t
    getType() const;

    virtual
    void
    knnSearch(
        const Matrix<ElementType>& queries,
        Matrix<int>& indices,
        Matrix<DistanceType>& dists,
        int knn,
        const SearchParams& params
        );

    virtual
    void
    loadIndex(FILE* stream);

    virtual
    int
    radiusSearch(
        const Matrix<ElementType>& query,
        Matrix<int>& indices,
        Matrix<DistanceType>& dists,
        float radius,
        const SearchParams& params
        );

    void
    save(cv::String filename);

    virtual
    void
    saveIndex(FILE* stream);

    virtual
    size_t
    size() const;

    virtual
    int
    usedMemory() const;

    virtual
    size_t
    veclen() const;
};

Inherited Members

public:
    // methods

    virtual
    void
    buildIndex() = 0;

    virtual
    void
    findNeighbors(
        ResultSet<DistanceType>& result,
        const ElementType* vec,
        const SearchParams& searchParams
        ) = 0;

    virtual
    IndexParams
    getParameters() const = 0;

    virtual
    flann_algorithm_t
    getType() const = 0;

    virtual
    void
    knnSearch(
        const Matrix<ElementType>& queries,
        Matrix<int>& indices,
        Matrix<DistanceType>& dists,
        int knn,
        const SearchParams& params
        );

    virtual
    void
    loadIndex(FILE* stream) = 0;

    virtual
    int
    radiusSearch(
        const Matrix<ElementType>& query,
        Matrix<int>& indices,
        Matrix<DistanceType>& dists,
        float radius,
        const SearchParams& params
        );

    virtual
    void
    saveIndex(FILE* stream) = 0;

    virtual
    size_t
    size() const = 0;

    virtual
    int
    usedMemory() const = 0;

    virtual
    size_t
    veclen() const = 0;

Detailed Documentation

Methods

virtual
void
buildIndex()

Builds the index.

virtual
void
findNeighbors(
    ResultSet<DistanceType>& result,
    const ElementType* vec,
    const SearchParams& searchParams
    )

Method that searches for nearest-neighbours.

NNIndex<Distance>*
getIndex()

Returns actual index.

const IndexParams*
getIndexParameters()

Returns index parameters.

Deprecated use getParameters() instead.

virtual
IndexParams
getParameters() const

Returns:

The index parameters

virtual
flann_algorithm_t
getType() const

Returns:

The index type (kdtree, kmeans,…)

virtual
void
knnSearch(
    const Matrix<ElementType>& queries,
    Matrix<int>& indices,
    Matrix<DistanceType>& dists,
    int knn,
    const SearchParams& params
    )

Perform k-nearest neighbor search.

Parameters:

queries The query points for which to find the nearest neighbors
indices The indices of the nearest neighbors found
dists Distances to the nearest neighbors found
knn Number of nearest neighbors to return
params Search parameters
virtual
void
loadIndex(FILE* stream)

Loads the index from a stream.

Parameters:

stream The stream from which the index is loaded
virtual
int
radiusSearch(
    const Matrix<ElementType>& query,
    Matrix<int>& indices,
    Matrix<DistanceType>& dists,
    float radius,
    const SearchParams& params
    )

Perform radius search.

Parameters:

query The query point
indices The indinces of the neighbors found within the given radius
dists The distances to the nearest neighbors found
radius The radius used for search
params Search parameters

Returns:

Number of neighbors found

virtual
void
saveIndex(FILE* stream)

Saves the index to a stream.

Parameters:

stream The stream to save the index to
virtual
size_t
size() const

Returns:

The dimensionality of the features in this index.

virtual
int
usedMemory() const

Returns:

The amount of memory (in bytes) used by the index.

virtual
size_t
veclen() const

Returns:

number of features in this index.