OTB  9.0.0
Orfeo Toolbox
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
otb::KeyPointSetsMatchingFilter< TPointSet, TDistance > Class Template Reference

#include <otbKeyPointSetsMatchingFilter.h>

+ Inheritance diagram for otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >:
+ Collaboration diagram for otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >:

Public Types

typedef itk::SmartPointer< const SelfConstPointer
 
typedef DistanceType::Pointer DistancePointerType
 
typedef TDistance DistanceType
 
typedef LandmarkListType::Pointer LandmarkListPointerType
 
typedef ObjectList< LandmarkTypeLandmarkListType
 
typedef LandmarkType::Pointer LandmarkPointerType
 
typedef Landmark< typename TPointSet::PointType, typename TPointSet::PixelType, double > LandmarkType
 
typedef std::pair< unsigned int, double > NeighborSearchResultType
 
typedef PointSetType::PointDataContainer PointDataContainerType
 
typedef PointDataContainerType::ConstIterator PointDataIteratorType
 
typedef PointSetType::PixelType PointDataType
 
typedef itk::SmartPointer< SelfPointer
 
typedef PointSetType::PointsContainer PointsContainerType
 
typedef PointSetType::Pointer PointSetPointerType
 
typedef TPointSet PointSetType
 
typedef PointsContainerType::ConstIterator PointsIteratorType
 
typedef PointSetType::PointType PointType
 
typedef KeyPointSetsMatchingFilter Self
 
typedef ObjectListSource< ObjectList< Landmark< typename TPointSet::PointType, typename TPointSet::PixelType, double > > > Superclass
 
- Public Types inherited from otb::ObjectListSource< ObjectList< Landmark< TPointSet::PointType, TPointSet::PixelType, double > > >
typedef itk::SmartPointer< const SelfConstPointer
 
typedef itk::DataObject::Pointer DataObjectPointer
 
typedef itk::ProcessObject::DataObjectPointerArraySizeType DataObjectPointerArraySizeType
 
typedef ObjectList< Landmark< TPointSet::PointType, TPointSet::PixelType, double > > ::Pointer OutputListPointer
 
typedef ObjectList< Landmark< TPointSet::PointType, TPointSet::PixelType, double > > OutputListType
 
typedef itk::SmartPointer< SelfPointer
 
typedef ObjectListSource Self
 
typedef itk::ProcessObject Superclass
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
 
virtual double GetDistanceThreshold ()
 
const PointSetTypeGetInput1 ()
 
const PointSetTypeGetInput2 ()
 
virtual const char * GetNameOfClass () const
 
virtual bool GetUseBackMatching ()
 
virtual void SetDistanceThreshold (double _arg)
 
void SetInput1 (const PointSetType *pointset)
 
void SetInput2 (const PointSetType *pointset)
 
virtual void SetUseBackMatching (bool _arg)
 
virtual void UseBackMatchingOff ()
 
virtual void UseBackMatchingOn ()
 
- Public Member Functions inherited from otb::ObjectListSource< ObjectList< Landmark< TPointSet::PointType, TPointSet::PixelType, double > > >
virtual ::itk::LightObject::Pointer CreateAnother (void) const
 
virtual const char * GetNameOfClass () const
 
DataObjectPointer MakeOutput (DataObjectPointerArraySizeType idx) override
 
void GraftOutput (itk::DataObject *graft)
 
void GraftNthOutput (DataObjectPointerArraySizeType idx, itk::DataObject *graft)
 
OutputListTypeGetOutput (void)
 
OutputListTypeGetOutput (DataObjectPointerArraySizeType idx)
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from otb::ObjectListSource< ObjectList< Landmark< TPointSet::PointType, TPointSet::PixelType, double > > >
static Pointer New ()
 

Protected Member Functions

void GenerateData () override
 
 KeyPointSetsMatchingFilter ()
 
NeighborSearchResultType NearestNeighbor (const PointDataType &data1, const PointSetType *pointset)
 
void PrintSelf (std::ostream &os, itk::Indent indent) const override
 
 ~KeyPointSetsMatchingFilter () override
 
- Protected Member Functions inherited from otb::ObjectListSource< ObjectList< Landmark< TPointSet::PointType, TPointSet::PixelType, double > > >
 ObjectListSource ()
 
 ~ObjectListSource () override
 
void PrintSelf (std::ostream &os, itk::Indent indent) const override
 
virtual void AllocateOutputs ()
 
void GenerateData (void) override
 

Private Member Functions

 KeyPointSetsMatchingFilter (const Self &)=delete
 
void operator= (const Self &)=delete
 

Private Attributes

DistancePointerType m_DistanceCalculator
 
double m_DistanceThreshold
 
bool m_UseBackMatching
 

Detailed Description

template<class TPointSet, class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
class otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >

This class matches two point sets according to their associated data.

The matching criteria is that the ratio between the distance to the first nearest neighbor and the second nearest neighbor is lower than the distance threshold. The distance used can be set via the TDistance template parameters. It has to implement the Evaluate() method (see EuclideanDistanceMetric for more details).

By default, the algorithm tries to match points from pointset 1 to points from pointset 2. If back matching is activated, it will also try to match points from pointset 2 to points from pointset 2, and discard matches that do not appear both in forward and backward matching.

Matches are stored in a landmark object containing both matched points and point data. The landmark data will hold the distance value between the data.

See also
Landmark
PointSet
EuclideanDistanceMetric

Definition at line 51 of file otbKeyPointSetsMatchingFilter.h.

Member Typedef Documentation

◆ ConstPointer

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
typedef itk::SmartPointer<const Self> otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::ConstPointer

Definition at line 59 of file otbKeyPointSetsMatchingFilter.h.

◆ DistancePointerType

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
typedef DistanceType::Pointer otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::DistancePointerType

Definition at line 71 of file otbKeyPointSetsMatchingFilter.h.

◆ DistanceType

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
typedef TDistance otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::DistanceType

Definition at line 70 of file otbKeyPointSetsMatchingFilter.h.

◆ LandmarkListPointerType

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
typedef LandmarkListType::Pointer otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::LandmarkListPointerType

Definition at line 75 of file otbKeyPointSetsMatchingFilter.h.

◆ LandmarkListType

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
typedef ObjectList<LandmarkType> otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::LandmarkListType

Definition at line 74 of file otbKeyPointSetsMatchingFilter.h.

◆ LandmarkPointerType

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
typedef LandmarkType::Pointer otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::LandmarkPointerType

Definition at line 73 of file otbKeyPointSetsMatchingFilter.h.

◆ LandmarkType

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
typedef Landmark<typename TPointSet::PointType, typename TPointSet::PixelType, double> otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::LandmarkType

Definition at line 72 of file otbKeyPointSetsMatchingFilter.h.

◆ NeighborSearchResultType

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
typedef std::pair<unsigned int, double> otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::NeighborSearchResultType

Definition at line 76 of file otbKeyPointSetsMatchingFilter.h.

◆ PointDataContainerType

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
typedef PointSetType::PointDataContainer otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::PointDataContainerType

Definition at line 68 of file otbKeyPointSetsMatchingFilter.h.

◆ PointDataIteratorType

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
typedef PointDataContainerType::ConstIterator otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::PointDataIteratorType

Definition at line 69 of file otbKeyPointSetsMatchingFilter.h.

◆ PointDataType

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
typedef PointSetType::PixelType otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::PointDataType

Definition at line 65 of file otbKeyPointSetsMatchingFilter.h.

◆ Pointer

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
typedef itk::SmartPointer<Self> otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::Pointer

Definition at line 58 of file otbKeyPointSetsMatchingFilter.h.

◆ PointsContainerType

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
typedef PointSetType::PointsContainer otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::PointsContainerType

Definition at line 66 of file otbKeyPointSetsMatchingFilter.h.

◆ PointSetPointerType

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
typedef PointSetType::Pointer otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::PointSetPointerType

Definition at line 63 of file otbKeyPointSetsMatchingFilter.h.

◆ PointSetType

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
typedef TPointSet otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::PointSetType

template typedefs

Definition at line 62 of file otbKeyPointSetsMatchingFilter.h.

◆ PointsIteratorType

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
typedef PointsContainerType::ConstIterator otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::PointsIteratorType

Definition at line 67 of file otbKeyPointSetsMatchingFilter.h.

◆ PointType

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
typedef PointSetType::PointType otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::PointType

Definition at line 64 of file otbKeyPointSetsMatchingFilter.h.

◆ Self

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
typedef KeyPointSetsMatchingFilter otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::Self

standard class typedefs

Definition at line 56 of file otbKeyPointSetsMatchingFilter.h.

◆ Superclass

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
typedef ObjectListSource<ObjectList<Landmark<typename TPointSet::PointType, typename TPointSet::PixelType, double> > > otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::Superclass

Definition at line 57 of file otbKeyPointSetsMatchingFilter.h.

Constructor & Destructor Documentation

◆ KeyPointSetsMatchingFilter() [1/2]

template<class TPointSet , class TDistance >
otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::KeyPointSetsMatchingFilter
protected

Constructor.

Definition at line 30 of file otbKeyPointSetsMatchingFilter.hxx.

◆ ~KeyPointSetsMatchingFilter()

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::~KeyPointSetsMatchingFilter ( )
inlineoverrideprotected

Destructor.

Definition at line 102 of file otbKeyPointSetsMatchingFilter.h.

◆ KeyPointSetsMatchingFilter() [2/2]

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::KeyPointSetsMatchingFilter ( const Self )
privatedelete

Member Function Documentation

◆ CreateAnother()

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
virtual::itk::LightObject::Pointer otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::CreateAnother ( void  ) const

◆ GenerateData()

template<class TPointSet , class TDistance >
void otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::GenerateData
overrideprotected

Generate Data.

Definition at line 64 of file otbKeyPointSetsMatchingFilter.hxx.

◆ GetDistanceThreshold()

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
virtual double otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::GetDistanceThreshold ( )
virtual

◆ GetInput1()

template<class TPointSet , class TDistance >
const KeyPointSetsMatchingFilter< TPointSet, TDistance >::PointSetType * otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::GetInput1

Get the first pointset.

Definition at line 40 of file otbKeyPointSetsMatchingFilter.hxx.

◆ GetInput2()

template<class TPointSet , class TDistance >
const KeyPointSetsMatchingFilter< TPointSet, TDistance >::PointSetType * otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::GetInput2

Get the second pointset.

Definition at line 52 of file otbKeyPointSetsMatchingFilter.hxx.

◆ GetNameOfClass()

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
virtual const char* otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::GetNameOfClass ( ) const
virtual

◆ GetUseBackMatching()

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
virtual bool otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::GetUseBackMatching ( )
virtual

◆ NearestNeighbor()

template<class TPointSet , class TDistance >
KeyPointSetsMatchingFilter< TPointSet, TDistance >::NeighborSearchResultType otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::NearestNeighbor ( const PointDataType data1,
const PointSetType pointset 
)
protected

Find the nearest neighbor of data1 in pointset.

Returns
a pair of (index, distance).

Definition at line 146 of file otbKeyPointSetsMatchingFilter.hxx.

◆ New()

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
static Pointer otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::New ( )
static

standard macros

◆ operator=()

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
void otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::operator= ( const Self )
privatedelete

◆ PrintSelf()

template<class TPointSet , class TDistance >
void otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::PrintSelf ( std::ostream &  os,
itk::Indent  indent 
) const
overrideprotected

PrintSelf method.

Definition at line 210 of file otbKeyPointSetsMatchingFilter.hxx.

◆ SetDistanceThreshold()

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
virtual void otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::SetDistanceThreshold ( double  _arg)
virtual

◆ SetInput1()

template<class TPointSet , class TDistance >
void otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::SetInput1 ( const PointSetType pointset)

Set the first pointset.

Definition at line 46 of file otbKeyPointSetsMatchingFilter.hxx.

◆ SetInput2()

template<class TPointSet , class TDistance >
void otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::SetInput2 ( const PointSetType pointset)

Set the second pointset.

Definition at line 58 of file otbKeyPointSetsMatchingFilter.hxx.

◆ SetUseBackMatching()

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
virtual void otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::SetUseBackMatching ( bool  _arg)
virtual

◆ UseBackMatchingOff()

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
virtual void otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::UseBackMatchingOff ( )
virtual

◆ UseBackMatchingOn()

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
virtual void otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::UseBackMatchingOn ( )
virtual

Accessors.

Member Data Documentation

◆ m_DistanceCalculator

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
DistancePointerType otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::m_DistanceCalculator
private

Definition at line 128 of file otbKeyPointSetsMatchingFilter.h.

◆ m_DistanceThreshold

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
double otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::m_DistanceThreshold
private

Definition at line 125 of file otbKeyPointSetsMatchingFilter.h.

◆ m_UseBackMatching

template<class TPointSet , class TDistance = itk::Statistics::EuclideanDistanceMetric<typename TPointSet::PixelType>>
bool otb::KeyPointSetsMatchingFilter< TPointSet, TDistance >::m_UseBackMatching
private

Definition at line 122 of file otbKeyPointSetsMatchingFilter.h.


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