OTB  7.3.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::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage > Class Template Reference

#include <otbDSFusionOfClassifiersImageFilter.h>

+ Inheritance diagram for otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >:
+ Collaboration diagram for otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >:

Public Types

typedef std::map< LabelType, unsigned int > ClassifierHistogramType
 
typedef itk::SmartPointer< const SelfConstPointer
 
typedef InputImageType::ConstPointer InputImageConstPointerType
 
typedef TInputImage InputImageType
 
typedef InputImageType::InternalPixelType InternalPixelType
 
typedef std::map< LabelType, MassTypeLabelMassMapType
 
typedef OutputImageType::PixelType LabelType
 
typedef MaskImageType::ConstPointer MaskImageConstPointerType
 
typedef MaskImageType::Pointer MaskImagePointerType
 
typedef TMaskImage MaskImageType
 
typedef double MassType
 
typedef OutputImageType::Pointer OutputImagePointerType
 
typedef OutputImageType::RegionType OutputImageRegionType
 
typedef TOutputImage OutputImageType
 
typedef InputImageType::PixelType PixelType
 
typedef itk::SmartPointer< SelfPointer
 
typedef DSFusionOfClassifiersImageFilter Self
 
typedef itk::ImageToImageFilter< TInputImage, TOutputImage > Superclass
 
typedef InputImageType::InternalPixelType ValueType
 
typedef std::vector< LabelMassMapTypeVectorOfMapOfMassesOfBeliefType
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
 
const VectorOfMapOfMassesOfBeliefTypeGetInputMapsOfMassesOfBelief (void)
 
const MaskImageTypeGetInputMask (void)
 
virtual const char * GetNameOfClass () const
 
const LabelType OptimizedDSMassCombination (PixelType vectorPixelValue)
 
void SetInputMapsOfMassesOfBelief (const VectorOfMapOfMassesOfBeliefType *ptrVectorOfMapOfMassesOfBelief)
 
void SetInputMask (const MaskImageType *mask)
 
virtual void SetLabelForNoDataPixels (LabelType _arg)
 
virtual LabelType GetLabelForNoDataPixels ()
 
virtual void SetLabelForUndecidedPixels (LabelType _arg)
 
virtual LabelType GetLabelForUndecidedPixels ()
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

void BeforeThreadedGenerateData () override
 
 DSFusionOfClassifiersImageFilter ()
 
void GenerateOutputInformation () override
 
void PrintSelf (std::ostream &os, itk::Indent indent) const override
 
void ThreadedGenerateData (const OutputImageRegionType &outputRegionForThread, itk::ThreadIdType threadId) override
 
 ~DSFusionOfClassifiersImageFilter () override
 

Private Member Functions

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

Private Attributes

LabelType m_LabelForNoDataPixels
 
LabelType m_LabelForUndecidedPixels
 
unsigned int m_NumberOfClassesInUniverse
 
unsigned int m_NumberOfClassifiers
 
ClassifierHistogramType m_Universe
 
VectorOfMapOfMassesOfBeliefType m_VectorOfMapMOBs
 
std::vector< MassTypem_VectorOfUniverseMOBs
 

Detailed Description

template<class TInputImage, class TOutputImage, class TMaskImage = TOutputImage>
class otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >

Performs a fusion of n classification maps using the Dempster Shafer (noted DS) rule of combination.

This filter performs a fusion of n classification maps using the Dempster Shafer rule of combination from an otbVectorImage with n channels, each one corresponding to an input classification map to be fused. This otbVectorImage can be obtained with the help of a preliminary use of the otbImageListToVectorImageFilter.

Moreover, the otbDSFusionOfClassifiersImageFilter needs as additional input a std::vector containing the n std::maps of Masses Of Belief (noted MOB). Each std::map<Label, MOB> in this input std::vector is related to one classifier and links each label to its mass of belief in this classifier.

The output label image resulting from the DS fusion of classification maps only has one channel (monoband image).

The recursive optimized Dempster Shafer combination of masses of belief is performed in 2 steps for each channel component of each pixel of the input otbVectorImage within the input mask, and is based on:

[1] L. Xu, A. Krzyzak, and C.Y. Suen, "Methods of combining multiple classifiers and their applications to handwriting recognition," Systems, Man and Cybernetics, IEEE Transactions on vol. 22, no.3, pp. 418-435, May/Jun 1992.

[2] D. Ruta and B. Gabrys, "An Overview of Classifier Fusion Methods," Computing and Information Systems, vol. 7 pp.1-10, University of Paisley, 2000.

[3] C.R. Parikh, M.J. Pont, and N.B. Jones, "Application of Dempster-Shafer theory in condition monitoring systems: A case study," Pattern Recognition Letters, vol. 22 (6-7): pp. 777-785, 2001.

See also
MassOfBelief

Definition at line 69 of file otbDSFusionOfClassifiersImageFilter.h.

Member Typedef Documentation

◆ ClassifierHistogramType

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
typedef std::map<LabelType, unsigned int> otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::ClassifierHistogramType

Definition at line 104 of file otbDSFusionOfClassifiersImageFilter.h.

◆ ConstPointer

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
typedef itk::SmartPointer<const Self> otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::ConstPointer

Definition at line 76 of file otbDSFusionOfClassifiersImageFilter.h.

◆ InputImageConstPointerType

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
typedef InputImageType::ConstPointer otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::InputImageConstPointerType

Definition at line 86 of file otbDSFusionOfClassifiersImageFilter.h.

◆ InputImageType

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
typedef TInputImage otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::InputImageType

Definition at line 82 of file otbDSFusionOfClassifiersImageFilter.h.

◆ InternalPixelType

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
typedef InputImageType::InternalPixelType otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::InternalPixelType

Definition at line 89 of file otbDSFusionOfClassifiersImageFilter.h.

◆ LabelMassMapType

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
typedef std::map<LabelType, MassType> otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::LabelMassMapType

Definition at line 103 of file otbDSFusionOfClassifiersImageFilter.h.

◆ LabelType

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
typedef OutputImageType::PixelType otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::LabelType

Definition at line 100 of file otbDSFusionOfClassifiersImageFilter.h.

◆ MaskImageConstPointerType

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
typedef MaskImageType::ConstPointer otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::MaskImageConstPointerType

Definition at line 93 of file otbDSFusionOfClassifiersImageFilter.h.

◆ MaskImagePointerType

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
typedef MaskImageType::Pointer otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::MaskImagePointerType

Definition at line 94 of file otbDSFusionOfClassifiersImageFilter.h.

◆ MaskImageType

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
typedef TMaskImage otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::MaskImageType

Definition at line 92 of file otbDSFusionOfClassifiersImageFilter.h.

◆ MassType

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
typedef double otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::MassType

Definition at line 102 of file otbDSFusionOfClassifiersImageFilter.h.

◆ OutputImagePointerType

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
typedef OutputImageType::Pointer otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::OutputImagePointerType

Definition at line 98 of file otbDSFusionOfClassifiersImageFilter.h.

◆ OutputImageRegionType

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
typedef OutputImageType::RegionType otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::OutputImageRegionType

Definition at line 99 of file otbDSFusionOfClassifiersImageFilter.h.

◆ OutputImageType

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
typedef TOutputImage otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::OutputImageType

Definition at line 97 of file otbDSFusionOfClassifiersImageFilter.h.

◆ PixelType

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
typedef InputImageType::PixelType otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::PixelType

Definition at line 88 of file otbDSFusionOfClassifiersImageFilter.h.

◆ Pointer

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
typedef itk::SmartPointer<Self> otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::Pointer

Definition at line 75 of file otbDSFusionOfClassifiersImageFilter.h.

◆ Self

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
typedef DSFusionOfClassifiersImageFilter otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::Self

Standard typedefs

Definition at line 73 of file otbDSFusionOfClassifiersImageFilter.h.

◆ Superclass

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
typedef itk::ImageToImageFilter<TInputImage, TOutputImage> otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::Superclass

Definition at line 74 of file otbDSFusionOfClassifiersImageFilter.h.

◆ ValueType

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
typedef InputImageType::InternalPixelType otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::ValueType

Definition at line 87 of file otbDSFusionOfClassifiersImageFilter.h.

◆ VectorOfMapOfMassesOfBeliefType

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
typedef std::vector<LabelMassMapType> otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::VectorOfMapOfMassesOfBeliefType

Definition at line 105 of file otbDSFusionOfClassifiersImageFilter.h.

Constructor & Destructor Documentation

◆ DSFusionOfClassifiersImageFilter() [1/2]

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::DSFusionOfClassifiersImageFilter ( )
protected

Constructor

◆ ~DSFusionOfClassifiersImageFilter()

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::~DSFusionOfClassifiersImageFilter ( )
inlineoverrideprotected

Destructor

Definition at line 145 of file otbDSFusionOfClassifiersImageFilter.h.

◆ DSFusionOfClassifiersImageFilter() [2/2]

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::DSFusionOfClassifiersImageFilter ( const Self )
privatedelete

Member Function Documentation

◆ BeforeThreadedGenerateData()

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
void otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::BeforeThreadedGenerateData ( )
overrideprotected

Before threaded generate data

◆ CreateAnother()

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
virtual::itk::LightObject::Pointer otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::CreateAnother ( void  ) const

◆ GenerateOutputInformation()

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
void otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::GenerateOutputInformation ( )
overrideprotected

Generate output information

◆ GetInputMapsOfMassesOfBelief()

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
const VectorOfMapOfMassesOfBeliefType* otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::GetInputMapsOfMassesOfBelief ( void  )

◆ GetInputMask()

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
const MaskImageType* otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::GetInputMask ( void  )

Get the input mask.

Returns
The mask.

◆ GetLabelForNoDataPixels()

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
virtual LabelType otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::GetLabelForNoDataPixels ( )
virtual

Set/Get the m_LabelForNoDataPixels

◆ GetLabelForUndecidedPixels()

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
virtual LabelType otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::GetLabelForUndecidedPixels ( )
virtual

Set/Get the LabelForUndecidedPixels

◆ GetNameOfClass()

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
virtual const char* otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::GetNameOfClass ( ) const
virtual

Creation through object factory macro

◆ New()

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
static Pointer otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::New ( )
static

Type macro

◆ operator=()

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
void otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::operator= ( const Self )
privatedelete

◆ OptimizedDSMassCombination()

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
const LabelType otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::OptimizedDSMassCombination ( PixelType  vectorPixelValue)

◆ PrintSelf()

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
void otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::PrintSelf ( std::ostream &  os,
itk::Indent  indent 
) const
overrideprotected

PrintSelf method

◆ SetInputMapsOfMassesOfBelief()

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
void otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::SetInputMapsOfMassesOfBelief ( const VectorOfMapOfMassesOfBeliefType ptrVectorOfMapOfMassesOfBelief)

◆ SetInputMask()

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
void otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::SetInputMask ( const MaskImageType mask)

If set, only pixels within the mask (i.e. pixels different from 0 in the InputMask) will be fused. The pixels out of the mask (i.e. pixels equal to 0 in the InputMask) will be set to m_LabelForNoDataPixels in the Output fused image.

Parameters
maskThe input mask.

◆ SetLabelForNoDataPixels()

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
virtual void otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::SetLabelForNoDataPixels ( LabelType  _arg)
virtual

Set/Get the m_LabelForNoDataPixels

◆ SetLabelForUndecidedPixels()

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
virtual void otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::SetLabelForUndecidedPixels ( LabelType  _arg)
virtual

Set/Get the LabelForUndecidedPixels

◆ ThreadedGenerateData()

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
void otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::ThreadedGenerateData ( const OutputImageRegionType outputRegionForThread,
itk::ThreadIdType  threadId 
)
overrideprotected

Threaded generate data

Member Data Documentation

◆ m_LabelForNoDataPixels

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
LabelType otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::m_LabelForNoDataPixels
private

No Data label for invalid pixels (when using a mask)

Definition at line 173 of file otbDSFusionOfClassifiersImageFilter.h.

◆ m_LabelForUndecidedPixels

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
LabelType otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::m_LabelForUndecidedPixels
private

Undecided label for pixels with NOT unique DS voting

Definition at line 176 of file otbDSFusionOfClassifiersImageFilter.h.

◆ m_NumberOfClassesInUniverse

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
unsigned int otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::m_NumberOfClassesInUniverse
private

Definition at line 167 of file otbDSFusionOfClassifiersImageFilter.h.

◆ m_NumberOfClassifiers

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
unsigned int otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::m_NumberOfClassifiers
private

Definition at line 165 of file otbDSFusionOfClassifiersImageFilter.h.

◆ m_Universe

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
ClassifierHistogramType otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::m_Universe
private

Definition at line 166 of file otbDSFusionOfClassifiersImageFilter.h.

◆ m_VectorOfMapMOBs

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
VectorOfMapOfMassesOfBeliefType otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::m_VectorOfMapMOBs
private

Definition at line 169 of file otbDSFusionOfClassifiersImageFilter.h.

◆ m_VectorOfUniverseMOBs

template<class TInputImage , class TOutputImage , class TMaskImage = TOutputImage>
std::vector<MassType> otb::DSFusionOfClassifiersImageFilter< TInputImage, TOutputImage, TMaskImage >::m_VectorOfUniverseMOBs
private

Definition at line 170 of file otbDSFusionOfClassifiersImageFilter.h.


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