Ocean
Ocean::Tracking::VocabularyStructure Class Reference

This class implements the base class for all Vocabulary objects. More...

Inheritance diagram for Ocean::Tracking::VocabularyStructure:

Data Structures

class  Match
 This class implements a simple container holding the index pairs of matching descriptors and their distance. More...
 
class  Parameters
 This class stores construction parameters for a VocabularyStructure. More...
 

Public Types

enum  InitializationStrategy : uint32_t { IS_INVALID = 0u , IS_PURE_RANDOM , IS_LARGEST_DISTANCE }
 Definition of individual strategies to initialize the clustering of each tree node. More...
 
enum  MatchingMode : uint32_t {
  MM_INVALID = 0u , MM_FIRST_BEST_LEAF , MM_ALL_BEST_LEAFS , MM_ALL_GOOD_LEAFS_1 ,
  MM_ALL_GOOD_LEAFS_2
}
 Definition of individual matching modes for descriptors. More...
 
template<typename TDistance >
using Matches = std::vector< Match< TDistance > >
 Definition of a vector holding matches. More...
 

Public Member Functions

virtual ~VocabularyStructure ()=default
 Destructs this object. More...
 

Static Public Member Functions

static constexpr Index32 invalidMatchIndex ()
 Returns an invalid matching index. More...
 

Protected Member Functions

 VocabularyStructure ()=default
 Default constructor. More...
 

Static Protected Member Functions

static std::vector< uint8_t > generateBitSeparationLookup8 ()
 Returns the lookup table which separates the bits of a byte into 8 individual bytes. More...
 

Detailed Description

This class implements the base class for all Vocabulary objects.

Member Typedef Documentation

◆ Matches

template<typename TDistance >
using Ocean::Tracking::VocabularyStructure::Matches = std::vector<Match<TDistance> >

Definition of a vector holding matches.

, .., ' ', ''

Member Enumeration Documentation

◆ InitializationStrategy

Definition of individual strategies to initialize the clustering of each tree node.

Enumerator
IS_INVALID 

An invalid strategy.

IS_PURE_RANDOM 

All initial clusters are chosen randomly.

IS_LARGEST_DISTANCE 

The initial first cluster is chosen randomly, the remaining clusters are chosen with largest distance to each other.

◆ MatchingMode

Definition of individual matching modes for descriptors.

Enumerator
MM_INVALID 

An invalid matching mode.

MM_FIRST_BEST_LEAF 

Only descriptor from the first best tree leaf are considered for matching (the second+ leaf with identical best distance is skipped).

MM_ALL_BEST_LEAFS 

All descriptors from all best tree leafs are considered for matching (all leafs with identical best distances are considered).

MM_ALL_GOOD_LEAFS_1 

All descriptors from all tree leafs are considered for matching which are within a 1% distance to the best leaf.

MM_ALL_GOOD_LEAFS_2 

All descriptors from all tree leafs are considered for matching which are within a 2% distance to the best leaf.

Constructor & Destructor Documentation

◆ ~VocabularyStructure()

virtual Ocean::Tracking::VocabularyStructure::~VocabularyStructure ( )
virtualdefault

Destructs this object.

◆ VocabularyStructure()

Ocean::Tracking::VocabularyStructure::VocabularyStructure ( )
protecteddefault

Default constructor.

Member Function Documentation

◆ generateBitSeparationLookup8()

std::vector< uint8_t > Ocean::Tracking::VocabularyStructure::generateBitSeparationLookup8 ( )
inlinestaticprotected

Returns the lookup table which separates the bits of a byte into 8 individual bytes.

The lookup table can be used e.g., during the calculation of the mean descriptor of several descriptors.

Returns
The lookup table with 256 * 8 entries

◆ invalidMatchIndex()

constexpr Index32 Ocean::Tracking::VocabularyStructure::invalidMatchIndex ( )
staticconstexpr

Returns an invalid matching index.

Returns
The index of an invalid match

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