40template <
class KE,
class VTYPE>
class QueueEntry;
41template <
class KE,
class VTYPE>
class KDTree;
64template <
class KE,
class TYPE>
84template <
class KE,
class VTYPE>
102template <
class KE,
class VTYPE>
110 typedef typename std::set<BestMatch<KE>, std::greater<BestMatch<KE> > >
BestMatchSet_t;
BestMatch(const KE *iMatch, double iDistance)
bool split(HyperRectangle &oLeft, HyperRectangle &oRight, int iSplitDim, TYPE iSplitVal)
std::vector< TYPE > _leftTop
bool isTargetIn(const KE &iTarget)
std::vector< TYPE > _rightBottom
double calcSqDistance(const KE &iTarget)
bool hasHyperSphereIntersect(const KE &iTarget, double iSqDistance)
virtual VTYPE & getVectorElem(int iPos) const =0
std::list< QueueEntry< KE, VTYPE > > QueueEntryList_t
lfeat::bounded_set< BestMatch< KE >, std::greater< BestMatch< KE > > > BestMatchLimitedSet_t
double calcSqDist(const KE *i1, const KE *i2)
void recurseNearestNeighboursBBF(const KE &iTarget, HyperRectangle< KE, VTYPE > &iHR, BestMatchLimitedSet_t &ioBestMatches, QueueEntryList_t &ioSearchQueue, int &ioRemainingUnqueues)
std::vector< KE >::const_iterator ItemVectorIt_t
ItemPtrVectorIt_t choosePivot(const ItemPtrVector_t &iElemsPtrList)
std::vector< constKE * >::const_iterator ItemPtrVectorIt_t
KDTree< KE, VTYPE > * _leftKD
KDTree< KE, VTYPE > * _rightKD
std::vector< KE > ItemVector_t
std::vector< const KE * > ItemPtrVector_t
std::set< BestMatch< KE >, std::greater< BestMatch< KE > > > BestMatchSet_t
void init(const ItemPtrVector_t &iElemsPtrList)
BestMatchSet_t getNearestNeighboursBBF(const KE &iTarget, int iNbBestMatches, int iNbSearchSteps)
KDTree< KE, VTYPE > * _kdTree
HyperRectangle< KE, VTYPE > & _HR
QueueEntry(HyperRectangle< KE, VTYPE > &iHR, KDTree< KE, VTYPE > *iKDTree, double iDistance)
std::vector< deghosting::BImagePtr > threshold(const std::vector< deghosting::FImagePtr > &inputImages, const double threshold, const uint16_t flags)
Threshold function used for creating alpha masks for images.