OpenCV  3.2.0-dev
Open Source Computer Vision
cvflann::UniqueResultSet< DistanceType > Class Template Referenceabstract

Class that holds the k NN neighbors Faster than KNNResultSet as it uses a binary heap and does not maintain two arrays. More...

#include "result_set.h"

Inheritance diagram for cvflann::UniqueResultSet< DistanceType >:
Collaboration diagram for cvflann::UniqueResultSet< DistanceType >:

Classes

struct  DistIndex
 

Public Member Functions

 UniqueResultSet ()
 Default cosntructor. More...
 
virtual void addPoint (DistanceType dist, int index)=0
 
virtual void clear ()=0
 Remove all elements in the set. More...
 
virtual void copy (int *indices, DistanceType *dist, int n_neighbors=-1) const
 Copy the set to two C arrays. More...
 
bool full () const
 Check the status of the set. More...
 
size_t size () const
 The number of neighbors in the set. More...
 
virtual void sortAndCopy (int *indices, DistanceType *dist, int n_neighbors=-1) const
 Copy the set to two C arrays but sort it according to the distance first. More...
 
DistanceType worstDist () const
 The distance of the furthest neighbor If we don't have enough neighbors, it returns the max possible value. More...
 

Protected Attributes

std::set< DistIndexdist_indices_
 The best candidates so far. More...
 
bool is_full_
 Flag to say if the set is full. More...
 
DistanceType worst_distance_
 The worst distance found so far. More...
 

Detailed Description

template<typename DistanceType>
class cvflann::UniqueResultSet< DistanceType >

Class that holds the k NN neighbors Faster than KNNResultSet as it uses a binary heap and does not maintain two arrays.

Constructor & Destructor Documentation

template<typename DistanceType >
cvflann::UniqueResultSet< DistanceType >::UniqueResultSet ( )
inline

Default cosntructor.

Member Function Documentation

template<typename DistanceType >
virtual void cvflann::UniqueResultSet< DistanceType >::clear ( )
pure virtual
template<typename DistanceType >
virtual void cvflann::UniqueResultSet< DistanceType >::copy ( int *  indices,
DistanceType *  dist,
int  n_neighbors = -1 
) const
inlinevirtual

Copy the set to two C arrays.

Parameters
indicespointer to a C array of indices
distpointer to a C array of distances
n_neighborsthe number of neighbors to copy

Referenced by cvflann::NNIndex< cv::L1< ElementType > >::knnSearch(), cvflann::LshIndex< Distance >::knnSearch(), and cvflann::NNIndex< cv::L1< ElementType > >::radiusSearch().

Here is the caller graph for this function:

template<typename DistanceType >
bool cvflann::UniqueResultSet< DistanceType >::full ( ) const
inlinevirtual

Check the status of the set.

Returns
true if we have k NN

Implements cvflann::ResultSet< DistanceType >.

Reimplemented in cvflann::RadiusUniqueResultSet< DistanceType >.

template<typename DistanceType >
size_t cvflann::UniqueResultSet< DistanceType >::size ( ) const
inline

The number of neighbors in the set.

Returns

Referenced by cvflann::NNIndex< cv::L1< ElementType > >::radiusSearch().

Here is the caller graph for this function:

template<typename DistanceType >
virtual void cvflann::UniqueResultSet< DistanceType >::sortAndCopy ( int *  indices,
DistanceType *  dist,
int  n_neighbors = -1 
) const
inlinevirtual

Copy the set to two C arrays but sort it according to the distance first.

Parameters
indicespointer to a C array of indices
distpointer to a C array of distances
n_neighborsthe number of neighbors to copy

Referenced by cvflann::NNIndex< cv::L1< ElementType > >::knnSearch(), cvflann::LshIndex< Distance >::knnSearch(), and cvflann::NNIndex< cv::L1< ElementType > >::radiusSearch().

Here is the caller graph for this function:

template<typename DistanceType >
DistanceType cvflann::UniqueResultSet< DistanceType >::worstDist ( ) const
inlinevirtual

The distance of the furthest neighbor If we don't have enough neighbors, it returns the max possible value.

Returns

Implements cvflann::ResultSet< DistanceType >.

Reimplemented in cvflann::RadiusUniqueResultSet< DistanceType >.

Member Data Documentation

template<typename DistanceType >
std::set<DistIndex> cvflann::UniqueResultSet< DistanceType >::dist_indices_
protected

The best candidates so far.

template<typename DistanceType >
bool cvflann::UniqueResultSet< DistanceType >::is_full_
protected

Flag to say if the set is full.

template<typename DistanceType >
DistanceType cvflann::UniqueResultSet< DistanceType >::worst_distance_
protected

The worst distance found so far.


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