ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
flann::KMeansIndex< Distance > Class Template Reference

#include <kmeans_index.h>

Inheritance diagram for flann::KMeansIndex< Distance >:
Collaboration diagram for flann::KMeansIndex< Distance >:

Public Types

typedef Distance::ElementType ElementType
 
typedef Distance::ResultType DistanceType
 
typedef NNIndex< DistanceBaseClass
 
typedef bool needs_vector_space_distance
 
- Public Types inherited from flann::NNIndex< Distance >
typedef Distance::ElementType ElementType
 
typedef Distance::ResultType DistanceType
 

Public Member Functions

flann_algorithm_t getType () const
 
 KMeansIndex (const Matrix< ElementType > &inputData, const IndexParams &params=KMeansIndexParams(), Distance d=Distance())
 
 KMeansIndex (const IndexParams &params=KMeansIndexParams(), Distance d=Distance())
 
 KMeansIndex (const KMeansIndex &other)
 
KMeansIndexoperator= (KMeansIndex other)
 
void initCenterChooser ()
 
virtual ~KMeansIndex ()
 
BaseClassclone () const
 
void set_cb_index (float index)
 
int usedMemory () const
 
void addPoints (const Matrix< ElementType > &points, float rebuild_threshold=2)
 Incrementally add points to the index. More...
 
template<typename Archive >
void serialize (Archive &ar)
 
void saveIndex (FILE *stream)
 
void loadIndex (FILE *stream)
 
void findNeighbors (ResultSet< DistanceType > &result, const ElementType *vec, const SearchParams &searchParams) const
 
int getClusterCenters (Matrix< DistanceType > &centers)
 
virtual void buildIndex ()
 
virtual void buildIndex (const Matrix< ElementType > &dataset)
 
- Public Member Functions inherited from flann::NNIndex< Distance >
 NNIndex (Distance d)
 
 NNIndex (const IndexParams &params, Distance d)
 
 NNIndex (const NNIndex &other)
 
virtual ~NNIndex ()
 
virtual void buildIndex (const Matrix< ElementType > &dataset)
 
virtual void removePoint (size_t id)
 
virtual ElementTypegetPoint (size_t id)
 
size_t size () const
 
size_t veclen () const
 
IndexParams getParameters () const
 
template<typename Archive >
void serialize (Archive &ar)
 
virtual int knnSearch (const Matrix< ElementType > &queries, Matrix< size_t > &indices, Matrix< DistanceType > &dists, size_t knn, const SearchParams &params) const
 Perform k-nearest neighbor search. More...
 
int knnSearch (const Matrix< ElementType > &queries, Matrix< int > &indices, Matrix< DistanceType > &dists, size_t knn, const SearchParams &params) const
 
int knnSearch (const Matrix< ElementType > &queries, std::vector< std::vector< size_t > > &indices, std::vector< std::vector< DistanceType > > &dists, size_t knn, const SearchParams &params) const
 Perform k-nearest neighbor search. More...
 
int knnSearch (const Matrix< ElementType > &queries, std::vector< std::vector< int > > &indices, std::vector< std::vector< DistanceType > > &dists, size_t knn, const SearchParams &params) const
 
int radiusSearch (const Matrix< ElementType > &queries, Matrix< size_t > &indices, Matrix< DistanceType > &dists, float radius, const SearchParams &params) const
 Perform radius search. More...
 
int radiusSearch (const Matrix< ElementType > &queries, Matrix< int > &indices, Matrix< DistanceType > &dists, float radius, const SearchParams &params) const
 
int radiusSearch (const Matrix< ElementType > &queries, std::vector< std::vector< size_t > > &indices, std::vector< std::vector< DistanceType > > &dists, float radius, const SearchParams &params) const
 Perform radius search. More...
 
int radiusSearch (const Matrix< ElementType > &queries, std::vector< std::vector< int > > &indices, std::vector< std::vector< DistanceType > > &dists, float radius, const SearchParams &params) const
 
- Public Member Functions inherited from flann::IndexBase
virtual ~IndexBase ()
 

Protected Member Functions

void buildIndexImpl ()
 
- Protected Member Functions inherited from flann::NNIndex< Distance >
size_t id_to_index (size_t id)
 
void indices_to_ids (const size_t *in, size_t *out, size_t size) const
 
void setDataset (const Matrix< ElementType > &dataset)
 
void extendDataset (const Matrix< ElementType > &new_points)
 
void cleanRemovedPoints ()
 
void swap (NNIndex &other)
 

Additional Inherited Members

- Protected Attributes inherited from flann::NNIndex< Distance >
Distance distance_
 
size_t last_id_
 
size_t size_
 
size_t size_at_build_
 
size_t veclen_
 
IndexParams index_params_
 
bool removed_
 
DynamicBitset removed_points_
 
size_t removed_count_
 
std::vector< size_t > ids_
 
std::vector< ElementType * > points_
 
ElementTypedata_ptr_
 

Detailed Description

template<typename Distance>
class flann::KMeansIndex< Distance >

Hierarchical kmeans index

Contains a tree constructed through a hierarchical kmeans clustering and other information for indexing a set of points for nearest-neighbour matching.

Definition at line 83 of file kmeans_index.h.

Member Typedef Documentation

◆ BaseClass

template<typename Distance >
typedef NNIndex<Distance> flann::KMeansIndex< Distance >::BaseClass

Definition at line 89 of file kmeans_index.h.

◆ DistanceType

template<typename Distance >
typedef Distance::ResultType flann::KMeansIndex< Distance >::DistanceType

Definition at line 87 of file kmeans_index.h.

◆ ElementType

template<typename Distance >
typedef Distance::ElementType flann::KMeansIndex< Distance >::ElementType

Definition at line 86 of file kmeans_index.h.

◆ needs_vector_space_distance

template<typename Distance >
typedef bool flann::KMeansIndex< Distance >::needs_vector_space_distance

Definition at line 91 of file kmeans_index.h.

Constructor & Destructor Documentation

◆ KMeansIndex() [1/3]

template<typename Distance >
flann::KMeansIndex< Distance >::KMeansIndex ( const Matrix< ElementType > &  inputData,
const IndexParams params = KMeansIndexParams(),
Distance  d = Distance() 
)
inline

Index constructor

Params: inputData = dataset with the input features params = parameters passed to the hierarchical k-means algorithm

Definition at line 107 of file kmeans_index.h.

References FLANN_CENTERS_RANDOM, flann::get_param(), flann::KMeansIndex< Distance >::initCenterChooser(), max(), params, and flann::NNIndex< Distance >::setDataset().

Referenced by flann::KMeansIndex< Distance >::clone().

◆ KMeansIndex() [2/3]

template<typename Distance >
flann::KMeansIndex< Distance >::KMeansIndex ( const IndexParams params = KMeansIndexParams(),
Distance  d = Distance() 
)
inline

Index constructor

Params: inputData = dataset with the input features params = parameters passed to the hierarchical k-means algorithm

Definition at line 131 of file kmeans_index.h.

References FLANN_CENTERS_RANDOM, flann::get_param(), flann::KMeansIndex< Distance >::initCenterChooser(), max(), and params.

◆ KMeansIndex() [3/3]

template<typename Distance >
flann::KMeansIndex< Distance >::KMeansIndex ( const KMeansIndex< Distance > &  other)
inline

◆ ~KMeansIndex()

template<typename Distance >
virtual flann::KMeansIndex< Distance >::~KMeansIndex ( )
inlinevirtual

Index destructor.

Release the memory used by the index.

Definition at line 187 of file kmeans_index.h.

Member Function Documentation

◆ addPoints()

template<typename Distance >
void flann::KMeansIndex< Distance >::addPoints ( const Matrix< ElementType > &  points,
float  rebuild_threshold = 2 
)
inlinevirtual

◆ buildIndex() [1/2]

template<typename Distance >
virtual void flann::NNIndex< Distance >::buildIndex
inlinevirtual

Builds the index

Reimplemented from flann::NNIndex< Distance >.

Definition at line 125 of file nn_index.h.

Referenced by flann::KMeansIndex< Distance >::addPoints(), and flann::hierarchicalClustering().

◆ buildIndex() [2/2]

template<typename Distance >
virtual void flann::NNIndex< Distance >::buildIndex
inlinevirtual

Builds the index using the specified dataset

Parameters
datasetthe dataset to use

Reimplemented from flann::NNIndex< Distance >.

Definition at line 141 of file nn_index.h.

◆ buildIndexImpl()

template<typename Distance >
void flann::KMeansIndex< Distance >::buildIndexImpl ( )
inlineprotectedvirtual

Builds the index

Implements flann::NNIndex< Distance >.

Definition at line 329 of file kmeans_index.h.

References flann::NNIndex< Distance >::size_, and flann::NNIndex< Distance >::veclen_.

◆ clone()

template<typename Distance >
BaseClass* flann::KMeansIndex< Distance >::clone ( ) const
inlinevirtual

◆ findNeighbors()

template<typename Distance >
void flann::KMeansIndex< Distance >::findNeighbors ( ResultSet< DistanceType > &  result,
const ElementType vec,
const SearchParams searchParams 
) const
inlinevirtual

Find set of nearest neighbors to vec. Their indices are stored inside the result object.

Params: result = the result object in which the indices of the nearest-neighbors are stored vec = the vector for which to search the nearest neighbors searchParams = parameters that influence the search algorithm (checks, cb_index)

Implements flann::NNIndex< Distance >.

Definition at line 283 of file kmeans_index.h.

References flann::NNIndex< Distance >::removed_, and result.

◆ getClusterCenters()

template<typename Distance >
int flann::KMeansIndex< Distance >::getClusterCenters ( Matrix< DistanceType > &  centers)
inline

Clustering function that takes a cut in the hierarchical k-means tree and return the clusters centers of that clustering. Params: numClusters = number of clusters to have in the clustering computed Returns: number of cluster centers

Definition at line 301 of file kmeans_index.h.

References flann::Logger::info(), flann::Matrix_::rows, and flann::NNIndex< Distance >::veclen_.

Referenced by flann::hierarchicalClustering().

◆ getType()

template<typename Distance >
flann_algorithm_t flann::KMeansIndex< Distance >::getType ( ) const
inlinevirtual

Implements flann::IndexBase.

Definition at line 95 of file kmeans_index.h.

References FLANN_INDEX_KMEANS.

Referenced by flann::KMeansIndex< Distance >::serialize().

◆ initCenterChooser()

◆ loadIndex()

template<typename Distance >
void flann::KMeansIndex< Distance >::loadIndex ( FILE *  stream)
inlinevirtual

Implements flann::IndexBase.

Definition at line 266 of file kmeans_index.h.

◆ operator=()

template<typename Distance >
KMeansIndex& flann::KMeansIndex< Distance >::operator= ( KMeansIndex< Distance other)
inline

Definition at line 158 of file kmeans_index.h.

◆ saveIndex()

template<typename Distance >
void flann::KMeansIndex< Distance >::saveIndex ( FILE *  stream)
inlinevirtual

Implements flann::IndexBase.

Definition at line 260 of file kmeans_index.h.

◆ serialize()

template<typename Distance >
template<typename Archive >
void flann::KMeansIndex< Distance >::serialize ( Archive &  ar)
inline

◆ set_cb_index()

template<typename Distance >
void flann::KMeansIndex< Distance >::set_cb_index ( float  index)
inline

Definition at line 199 of file kmeans_index.h.

◆ usedMemory()

template<typename Distance >
int flann::KMeansIndex< Distance >::usedMemory ( ) const
inlinevirtual

Computes the inde memory usage Returns: memory used by the index

Implements flann::IndexBase.

Definition at line 208 of file kmeans_index.h.

References flann::PooledAllocator::usedMemory, and flann::PooledAllocator::wastedMemory.


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