OTB  9.0.0
Orfeo Toolbox
Public Types | Public Member Functions | Static Public Member Functions | List of all members
otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement > Class Template Reference

#include <otbGeodesicMorphologyDecompositionImageFilter.h>

+ Inheritance diagram for otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >:
+ Collaboration diagram for otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >:

Public Types

typedef ClosingFilterType::Pointer ClosingFilterPointerType
 
typedef itk::ClosingByReconstructionImageFilter< InputImageType, InputImageType, StructuringElementTypeClosingFilterType
 
typedef ConcaveFilterType::Pointer ConcaveFilterPointerType
 
typedef itk::SubtractImageFilter< OutputImageType, InputImageType, OutputImageTypeConcaveFilterType
 
typedef itk::SmartPointer< const SelfConstPointer
 
typedef ConvexFilterType::Pointer ConvexFilterPointerType
 
typedef itk::SubtractImageFilter< InputImageType, InputImageType, OutputImageTypeConvexFilterType
 
typedef TInputImage InputImageType
 
typedef LevelingFilterType::Pointer LevelingFilterPointerType
 
typedef otb::GeodesicMorphologyLevelingFilter< InputImageType, OutputImageType, OutputImageTypeLevelingFilterType
 
typedef OpeningFilterType::Pointer OpeningFilterPointerType
 
typedef itk::OpeningByReconstructionImageFilter< InputImageType, InputImageType, StructuringElementTypeOpeningFilterType
 
typedef TOutputImage OutputImageType
 
typedef itk::SmartPointer< SelfPointer
 
typedef StructuringElementType::RadiusType RadiusType
 
typedef GeodesicMorphologyDecompositionImageFilter Self
 
typedef TStructuringElement StructuringElementType
 
typedef itk::ImageToImageFilter< TInputImage, TOutputImage > Superclass
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
 
virtual const char * GetNameOfClass () const
 

Static Public Member Functions

static Pointer New ()
 
RadiusType m_Radius
 
OpeningFilterPointerType m_OpeningFilter
 
ClosingFilterPointerType m_ClosingFilter
 
ConvexFilterPointerType m_ConvexFilter
 
ConcaveFilterPointerType m_ConcaveFilter
 
LevelingFilterPointerType m_LevelingFilter
 
bool m_PreserveIntensities
 
bool m_FullyConnected
 
itk::ProgressAccumulator::Pointer m_Progress
 
virtual void SetRadius (RadiusType _arg)
 
virtual const RadiusTypeGetRadius () const
 
OutputImageTypeGetConvexMap (void)
 
OutputImageTypeGetConcaveMap (void)
 
virtual void SetFullyConnected (bool _arg)
 
virtual bool GetFullyConnected ()
 
virtual void SetPreserveIntensities (bool _arg)
 
virtual bool GetPreserveIntensities ()
 
void GenerateData (void) override
 
 GeodesicMorphologyDecompositionImageFilter ()
 
 ~GeodesicMorphologyDecompositionImageFilter () override
 
void PrintSelf (std::ostream &os, itk::Indent indent) const override
 
 GeodesicMorphologyDecompositionImageFilter (const Self &)=delete
 
void operator= (const Self &)=delete
 

Detailed Description

template<class TInputImage, class TOutputImage, class TStructuringElement>
class otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >

This class implements a geodesic morphology based image analysis algorithm.

This algorithm is based on the following publication:
Martino Pesaresi and Jon Alti Benediktsson, Member, IEEE: A new approach for the morphological segmentation of high resolution satellite imagery. IEEE Transactions on geoscience and remote sensing, vol. 39, NO. 2, February 2001, p. 309-320.

Given $\gamma^{\star}_{N}$ the geodesic opening by reconstruction morphological operator and $\varphi^{\star}_{N}$ the geodesic closing by reconstruction morphological operator for a structuring element of size $N$, one can define the two following membership functions for the input image $f$:

\[ \stackrel{\smile}{\mu} = f-\gamma^{\star}_{N}(f) \]

\[ \stackrel{\frown}{\mu} = \phi^{\star}_{N}(f)-f \]

Where $\stackrel{\smile}{\mu}$ denotes the likelihood of the current pixel to belong to a convex structure of the input image $f$ (i.e. brighter than the surrounding background) with respect to the size of the structuring element $N$, and $\stackrel{\frown}{\mu}$ denotes the likelihood of the current pixel to belong to a concave structure.

This two membership functions can be used to define a simplification operator $\psi_{N}$ called leveling, which removes from the input image $f$ the structures located by $\stackrel{\smile}{\mu}$ and $\stackrel{\frown}{\mu}$:

\[ \psi_{N}(f)= \left\{\begin{array}{lcl} \gamma^{\star}_{N}(f)&:& \stackrel{\smile}{\mu}>\stackrel{\frown}{\mu}\\ \varphi^{\star}_{N}(f)&:& \stackrel{\frown}{\mu}>\stackrel{\smile}{\mu}\\ f&:&\stackrel{\frown}{\mu}=\stackrel{\smile}{\mu} \end{array}\right. \]

This filter performs this image decomposition at a given structuring element size. The GetOutput() method returns $\psi_{N}(f)$, the GetConvexMap() method returns $\stackrel{\smile}{\mu}$ and the GetConcaveMap() method returns $\stackrel{\frown}{\mu}$.

The PreserveIntensities and the FullyConnected flags reflects the option of the geodesic morphology filters from ITK.

See also
GeodesicMorphologyLevelingFilter
itk::OpeningByReconstructionImageFilter
itk::ClosingByReconstructionImageFilter

Definition at line 85 of file otbGeodesicMorphologyDecompositionImageFilter.h.

Member Typedef Documentation

◆ ClosingFilterPointerType

template<class TInputImage , class TOutputImage , class TStructuringElement >
typedef ClosingFilterType::Pointer otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::ClosingFilterPointerType

◆ ClosingFilterType

template<class TInputImage , class TOutputImage , class TStructuringElement >
typedef itk::ClosingByReconstructionImageFilter<InputImageType, InputImageType, StructuringElementType> otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::ClosingFilterType

◆ ConcaveFilterPointerType

template<class TInputImage , class TOutputImage , class TStructuringElement >
typedef ConcaveFilterType::Pointer otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::ConcaveFilterPointerType

◆ ConcaveFilterType

template<class TInputImage , class TOutputImage , class TStructuringElement >
typedef itk::SubtractImageFilter<OutputImageType, InputImageType, OutputImageType> otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::ConcaveFilterType

◆ ConstPointer

template<class TInputImage , class TOutputImage , class TStructuringElement >
typedef itk::SmartPointer<const Self> otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::ConstPointer

◆ ConvexFilterPointerType

template<class TInputImage , class TOutputImage , class TStructuringElement >
typedef ConvexFilterType::Pointer otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::ConvexFilterPointerType

◆ ConvexFilterType

template<class TInputImage , class TOutputImage , class TStructuringElement >
typedef itk::SubtractImageFilter<InputImageType, InputImageType, OutputImageType> otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::ConvexFilterType

◆ InputImageType

template<class TInputImage , class TOutputImage , class TStructuringElement >
typedef TInputImage otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::InputImageType

Template parameters typedefs

Definition at line 98 of file otbGeodesicMorphologyDecompositionImageFilter.h.

◆ LevelingFilterPointerType

template<class TInputImage , class TOutputImage , class TStructuringElement >
typedef LevelingFilterType::Pointer otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::LevelingFilterPointerType

◆ LevelingFilterType

template<class TInputImage , class TOutputImage , class TStructuringElement >
typedef otb::GeodesicMorphologyLevelingFilter<InputImageType, OutputImageType, OutputImageType> otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::LevelingFilterType

◆ OpeningFilterPointerType

template<class TInputImage , class TOutputImage , class TStructuringElement >
typedef OpeningFilterType::Pointer otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::OpeningFilterPointerType

Pointers typedefs

Definition at line 113 of file otbGeodesicMorphologyDecompositionImageFilter.h.

◆ OpeningFilterType

template<class TInputImage , class TOutputImage , class TStructuringElement >
typedef itk::OpeningByReconstructionImageFilter<InputImageType, InputImageType, StructuringElementType> otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::OpeningFilterType

◆ OutputImageType

template<class TInputImage , class TOutputImage , class TStructuringElement >
typedef TOutputImage otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::OutputImageType

◆ Pointer

template<class TInputImage , class TOutputImage , class TStructuringElement >
typedef itk::SmartPointer<Self> otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::Pointer

◆ RadiusType

template<class TInputImage , class TOutputImage , class TStructuringElement >
typedef StructuringElementType::RadiusType otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::RadiusType

◆ Self

template<class TInputImage , class TOutputImage , class TStructuringElement >
typedef GeodesicMorphologyDecompositionImageFilter otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::Self

Standard typedefs

Definition at line 89 of file otbGeodesicMorphologyDecompositionImageFilter.h.

◆ StructuringElementType

template<class TInputImage , class TOutputImage , class TStructuringElement >
typedef TStructuringElement otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::StructuringElementType

◆ Superclass

template<class TInputImage , class TOutputImage , class TStructuringElement >
typedef itk::ImageToImageFilter<TInputImage, TOutputImage> otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::Superclass

Constructor & Destructor Documentation

◆ GeodesicMorphologyDecompositionImageFilter() [1/2]

template<class TInputImage , class TOutputImage , class TStructuringElement >
otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::GeodesicMorphologyDecompositionImageFilter ( )
protected

Constructor

◆ ~GeodesicMorphologyDecompositionImageFilter()

template<class TInputImage , class TOutputImage , class TStructuringElement >
otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::~GeodesicMorphologyDecompositionImageFilter ( )
inlineoverrideprotected

Destructor

Definition at line 153 of file otbGeodesicMorphologyDecompositionImageFilter.h.

◆ GeodesicMorphologyDecompositionImageFilter() [2/2]

template<class TInputImage , class TOutputImage , class TStructuringElement >
otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::GeodesicMorphologyDecompositionImageFilter ( const Self )
privatedelete

Radius of the structuring element

Member Function Documentation

◆ CreateAnother()

template<class TInputImage , class TOutputImage , class TStructuringElement >
virtual::itk::LightObject::Pointer otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::CreateAnother ( void  ) const

◆ GenerateData()

template<class TInputImage , class TOutputImage , class TStructuringElement >
void otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::GenerateData ( void  )
overrideprotected

GenerateData

◆ GetConcaveMap()

template<class TInputImage , class TOutputImage , class TStructuringElement >
OutputImageType* otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::GetConcaveMap ( void  )

Get the concave likehood map.

Returns
The concave likehood map.

◆ GetConvexMap()

template<class TInputImage , class TOutputImage , class TStructuringElement >
OutputImageType* otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::GetConvexMap ( void  )

Get the convex likehood map.

Returns
The convex likehood map.

◆ GetFullyConnected()

template<class TInputImage , class TOutputImage , class TStructuringElement >
virtual bool otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::GetFullyConnected ( )
virtual

Radius of the structuring element

◆ GetNameOfClass()

template<class TInputImage , class TOutputImage , class TStructuringElement >
virtual const char* otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::GetNameOfClass ( ) const
virtual

Creation through object factory macro

◆ GetPreserveIntensities()

template<class TInputImage , class TOutputImage , class TStructuringElement >
virtual bool otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::GetPreserveIntensities ( )
virtual

Radius of the structuring element

◆ GetRadius()

template<class TInputImage , class TOutputImage , class TStructuringElement >
virtual const RadiusType& otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::GetRadius ( ) const
virtual

Radius of the structuring element

◆ New()

template<class TInputImage , class TOutputImage , class TStructuringElement >
static Pointer otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::New ( )
static

Type macro

◆ operator=()

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

Radius of the structuring element

◆ PrintSelf()

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

PrintSelf method

◆ SetFullyConnected()

template<class TInputImage , class TOutputImage , class TStructuringElement >
virtual void otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::SetFullyConnected ( bool  _arg)
virtual

FullyConnected flag

◆ SetPreserveIntensities()

template<class TInputImage , class TOutputImage , class TStructuringElement >
virtual void otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::SetPreserveIntensities ( bool  _arg)
virtual

Preserve intensities flag

◆ SetRadius()

template<class TInputImage , class TOutputImage , class TStructuringElement >
virtual void otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::SetRadius ( RadiusType  _arg)
virtual

Radius of the structuring element

Member Data Documentation

◆ m_ClosingFilter

template<class TInputImage , class TOutputImage , class TStructuringElement >
ClosingFilterPointerType otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::m_ClosingFilter
private

Closing filter

Definition at line 171 of file otbGeodesicMorphologyDecompositionImageFilter.h.

◆ m_ConcaveFilter

template<class TInputImage , class TOutputImage , class TStructuringElement >
ConcaveFilterPointerType otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::m_ConcaveFilter
private

Second subtract filter (output is the concave map)

Definition at line 177 of file otbGeodesicMorphologyDecompositionImageFilter.h.

◆ m_ConvexFilter

template<class TInputImage , class TOutputImage , class TStructuringElement >
ConvexFilterPointerType otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::m_ConvexFilter
private

First subtract filter (output is the convex map)

Definition at line 174 of file otbGeodesicMorphologyDecompositionImageFilter.h.

◆ m_FullyConnected

template<class TInputImage , class TOutputImage , class TStructuringElement >
bool otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::m_FullyConnected
private

Use fully connected morphological operators

Definition at line 186 of file otbGeodesicMorphologyDecompositionImageFilter.h.

◆ m_LevelingFilter

template<class TInputImage , class TOutputImage , class TStructuringElement >
LevelingFilterPointerType otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::m_LevelingFilter
private

Leveling function

Definition at line 180 of file otbGeodesicMorphologyDecompositionImageFilter.h.

◆ m_OpeningFilter

template<class TInputImage , class TOutputImage , class TStructuringElement >
OpeningFilterPointerType otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::m_OpeningFilter
private

Opening filter

Definition at line 168 of file otbGeodesicMorphologyDecompositionImageFilter.h.

◆ m_PreserveIntensities

template<class TInputImage , class TOutputImage , class TStructuringElement >
bool otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::m_PreserveIntensities
private

Preserve intensities in morphological operators

Definition at line 183 of file otbGeodesicMorphologyDecompositionImageFilter.h.

◆ m_Progress

template<class TInputImage , class TOutputImage , class TStructuringElement >
itk::ProgressAccumulator::Pointer otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::m_Progress
private

Progress accumulator to report internal filter progress

Definition at line 189 of file otbGeodesicMorphologyDecompositionImageFilter.h.

◆ m_Radius

template<class TInputImage , class TOutputImage , class TStructuringElement >
RadiusType otb::GeodesicMorphologyDecompositionImageFilter< TInputImage, TOutputImage, TStructuringElement >::m_Radius
private

Radius of the structuring element

Definition at line 165 of file otbGeodesicMorphologyDecompositionImageFilter.h.


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