42 #ifndef INCLUDE_OKVIS_MATCHINGALGORITHM_HPP_
43 #define INCLUDE_OKVIS_MATCHINGALGORITHM_HPP_
80 virtual size_t sizeA()
const = 0;
82 virtual size_t sizeB()
const = 0;
100 return std::numeric_limits<float>::max();
120 virtual float distance(
size_t indexA,
size_t indexB)
const = 0;
131 return std::numeric_limits<float>::max();
virtual float distance(size_t indexA, size_t indexB) const =0
The "distance" between the two points. For points that absolutely don't match. Please use float max...
std::shared_ptr< MatchingAlgorithm > Ptr
Definition: MatchingAlgorithm.hpp:70
virtual listB_tree_structure_t::iterator getListBEndIterator(size_t indexA)
Get end iterator for elements of listB to be matched against the given element from list A (indexA) f...
Definition: MatchingAlgorithm.cpp:61
virtual listB_tree_structure_t::iterator getListBStartIterator(size_t indexA)
Get begin iterator for elements of listB to be matched against the given element from list A (indexA)...
Definition: MatchingAlgorithm.cpp:54
virtual void setBestMatch(size_t indexA, size_t indexB, double distance)=0
At the end of the matching step, this function is called once for each pair of matches discovered...
an interface for 1-1 matching between lists of things.
Definition: MatchingAlgorithm.hpp:66
virtual float distanceRatioThreshold() const
By which factor does the first best match has to be better than the second best one.
Definition: MatchingAlgorithm.hpp:104
std::multimap< size_t, size_t > listB_tree_structure_t
Tree data structure for image space restricted matching mapping from image row to list of features (i...
Definition: MatchingAlgorithm.hpp:86
#define OKVIS_DEFINE_EXCEPTION(exceptionName, exceptionParent)
Macro for defining an exception with a given parent.
Definition: assert_macros.hpp:52
This file contains some useful assert macros.
virtual float distanceThreshold() const
Distances above this threshold will not be returned as matches.
Definition: MatchingAlgorithm.hpp:99
virtual bool skipA(size_t) const
Should we skip the item in list A? This will be called once for each item in the list.
Definition: MatchingAlgorithm.hpp:109
virtual size_t sizeB() const =0
What is the size of list B?
virtual bool skipB(size_t) const
Should we skip the item in list B? This will be called many times.
Definition: MatchingAlgorithm.hpp:114
virtual size_t sizeA() const =0
What is the size of list A?
virtual void reserveMatches(size_t numMatches)=0
A function that tells you how many times setBestMatch() will be called.
listB_tree_structure_t dummy_
Definition: MatchingAlgorithm.hpp:135
float matchFailed() const
What to return if the match failed.
Definition: MatchingAlgorithm.hpp:130
virtual void doSetup()
This will be called exactly once for each call to DenseMatcher::match()
Definition: MatchingAlgorithm.hpp:76