OTB  6.7.0
Orfeo Toolbox
Public Types | Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | List of all members
otb::WaveletOperatorBase< TMotherWaveletOperator, TPixel, VDimension, TAllocator > Class Template Reference

#include <otbWaveletOperatorBase.h>

+ Inheritance diagram for otb::WaveletOperatorBase< TMotherWaveletOperator, TPixel, VDimension, TAllocator >:
+ Collaboration diagram for otb::WaveletOperatorBase< TMotherWaveletOperator, TPixel, VDimension, TAllocator >:

Public Types

typedef Wavelet::Wavelet MotherWaveletOperatorEnumType
 
typedef WaveletOperatorBase Self
 
typedef Superclass::SizeType SizeType
 
typedef
itk::NeighborhoodOperator
< TPixel, VDimension,
TAllocator > 
Superclass
 
- Public Types inherited from itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >
typedef NumericTraits< TPixel >
::RealType 
PixelRealType
 
typedef TPixel PixelType
 
typedef NeighborhoodOperator Self
 
typedef Superclass::SizeType SizeType
 
typedef SliceIterator< TPixel,
Self
SliceIteratorType
 
typedef Neighborhood< TPixel,
VDimension, TAllocator > 
Superclass
 
- Public Types inherited from itk::Neighborhood< TPixel, VDimension, TAllocator >
typedef TAllocator AllocatorType
 
typedef
AllocatorType::const_iterator 
ConstIterator
 
typedef unsigned int DimensionValueType
 
typedef AllocatorType::iterator Iterator
 
typedef SizeValueType NeighborIndexType
 
typedef Offset< VDimension > OffsetType
 
typedef TPixel PixelType
 
typedef Neighborhood Self
 
typedef SizeType::SizeValueType SizeValueType
 
typedef SliceIterator< TPixel,
Self
SliceIteratorType
 

Public Member Functions

virtual const char * GetNameOfClass () const
 
unsigned int GetUpSampleFactor () const
 
virtual const char * GetWaveletName () const
 
void SetUpSampleFactor (unsigned int upSampleFactor)
 
 WaveletOperatorBase ()
 
 WaveletOperatorBase (const Self &other)
 
 ~WaveletOperatorBase () override
 
Selfoperator= (const Self &other)
 
- Public Member Functions inherited from itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >
virtual void CreateDirectional ()
 
virtual void CreateToRadius (const SizeType &)
 
virtual void CreateToRadius (const SizeValueType)
 
virtual void FlipAxes ()
 
unsigned long GetDirection () const
 
 NeighborhoodOperator (const Self &orig)
 
 NeighborhoodOperator ()
 
Selfoperator= (const Self &orig)
 
void ScaleCoefficients (PixelRealType)
 
void SetDirection (const unsigned long &direction)
 
- Public Member Functions inherited from itk::Neighborhood< TPixel, VDimension, TAllocator >
Iterator Begin ()
 
ConstIterator Begin () const
 
Iterator End ()
 
ConstIterator End () const
 
AllocatorTypeGetBufferReference ()
 
const AllocatorTypeGetBufferReference () const
 
NeighborIndexType GetCenterNeighborhoodIndex () const
 
TPixel GetCenterValue () const
 
TPixel & GetElement (NeighborIndexType i)
 
virtual NeighborIndexType GetNeighborhoodIndex (const OffsetType &) const
 
OffsetType GetOffset (NeighborIndexType i) const
 
const SizeType GetRadius () const
 
SizeValueType GetRadius (DimensionValueType n) const
 
SizeType GetSize () const
 
SizeValueType GetSize (DimensionValueType n) const
 
std::slice GetSlice (unsigned int) const
 
OffsetValueType GetStride (DimensionValueType axis) const
 
 itkTypeMacroNoParent (Neighborhood)
 
 Neighborhood ()
 
 Neighborhood (const Self &other)
 
bool operator!= (const Self &other) const
 
Selfoperator= (const Self &other)
 
bool operator== (const Self &other) const
 
TPixel & operator[] (const OffsetType &o)
 
TPixel & operator[] (NeighborIndexType i)
 
const TPixel & operator[] (NeighborIndexType i) const
 
const TPixel & operator[] (const OffsetType &o) const
 
void Print (std::ostream &os) const
 
void SetRadius (const SizeValueType)
 
void SetRadius (const SizeType &)
 
void SetRadius (const SizeValueType *rad)
 
NeighborIndexType Size () const
 
virtual ~Neighborhood ()
 

Static Public Attributes

static const
MotherWaveletOperatorEnumType 
MotherWaveletOperator = TMotherWaveletOperator
 
- Static Public Attributes inherited from itk::Neighborhood< TPixel, VDimension, TAllocator >
static const unsigned int NeighborhoodDimension
 

Protected Types

typedef
Superclass::CoefficientVector 
CoefficientVector
 
typedef Superclass::PixelType PixelType
 
typedef
WaveletGeneratorType::Pointer 
WaveletGeneratorPointerType
 
typedef WaveletGenerator
< TMotherWaveletOperator > 
WaveletGeneratorType
 
- Protected Types inherited from itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >
typedef std::vector
< PixelRealType
CoefficientVector
 

Protected Member Functions

void Fill (const CoefficientVector &coeff) override
 
void GenerateInverseHighPassFilterFromLowPassFilter (CoefficientVector &coeff)
 
void GenerateInverseLowPassFilterFromHighPassFilter (CoefficientVector &coeff)
 
void PrintSelf (std::ostream &os, itk::Indent i) const override
 
void ReduceFilterLength (CoefficientVector &coeff)
 
void RevertFilter (CoefficientVector &coeff)
 
void UpSamplingCoefficients (CoefficientVector &coeff)
 
- Protected Member Functions inherited from itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >
virtual void FillCenteredDirectional (const CoefficientVector &)
 
virtual CoefficientVector GenerateCoefficients ()=0
 
void InitializeToZero ()
 
- Protected Member Functions inherited from itk::Neighborhood< TPixel, VDimension, TAllocator >
virtual void Allocate (NeighborIndexType i)
 
virtual void ComputeNeighborhoodOffsetTable ()
 
virtual void ComputeNeighborhoodStrideTable ()
 
void SetSize ()
 

Protected Attributes

unsigned int m_UpSampleFactor
 
WaveletGeneratorPointerType m_WaveletGenerator
 

Additional Inherited Members

- Public Attributes inherited from itk::Neighborhood< TPixel, VDimension, TAllocator >
typedef::itk::Size< VDimension > RadiusType
 
typedef::itk::Size< VDimension > SizeType
 

Detailed Description

template<Wavelet::Wavelet TMotherWaveletOperator, class TPixel, unsigned int VDimension, class TAllocator = itk::NeighborhoodAllocator<TPixel>>
class otb::WaveletOperatorBase< TMotherWaveletOperator, TPixel, VDimension, TAllocator >

A NeighborhoodOperator wavelet base class.

This class is the mother class for any wavelet operator that requires "a-trou" approach for shift-invariant wavelet transform. This class has to be derived, it cannot be used directly since GenerateCoefficients() method is still pure virtual.

Any wavelet operator that inherits from this WaveletOperatorBase is to be used as a NeighborhoodOperator that should be applied to a NeighborhoodIterator using the NeighborhoodInnerProduct method.

It is assumed that any wavelet definition is directional.

Set the level of up-sampling though SetUpSampleFactor() before calling CreateDirectional(). Each class that inherits from WaveletOperatorBase has to re-implement GenerateCoefficients().

The name of the wavelet is defined here but left pure virtual. It is defined with the LowPass and HighPass inheritance.

See Also
WaveletLowPassOperator
WaveletHighPassOperator
NeighborhoodOperator
Neighborhood

Definition at line 74 of file otbWaveletOperatorBase.h.

Member Typedef Documentation

template<Wavelet::Wavelet TMotherWaveletOperator, class TPixel , unsigned int VDimension, class TAllocator = itk::NeighborhoodAllocator<TPixel>>
typedef Superclass::CoefficientVector otb::WaveletOperatorBase< TMotherWaveletOperator, TPixel, VDimension, TAllocator >::CoefficientVector
protected

Typedef support for coefficient vector type. Necessary to work around compiler bug on VC++.

Definition at line 152 of file otbWaveletOperatorBase.h.

template<Wavelet::Wavelet TMotherWaveletOperator, class TPixel , unsigned int VDimension, class TAllocator = itk::NeighborhoodAllocator<TPixel>>
typedef Wavelet::Wavelet otb::WaveletOperatorBase< TMotherWaveletOperator, TPixel, VDimension, TAllocator >::MotherWaveletOperatorEnumType

Definition at line 86 of file otbWaveletOperatorBase.h.

template<Wavelet::Wavelet TMotherWaveletOperator, class TPixel , unsigned int VDimension, class TAllocator = itk::NeighborhoodAllocator<TPixel>>
typedef Superclass::PixelType otb::WaveletOperatorBase< TMotherWaveletOperator, TPixel, VDimension, TAllocator >::PixelType
protected

Definition at line 153 of file otbWaveletOperatorBase.h.

template<Wavelet::Wavelet TMotherWaveletOperator, class TPixel , unsigned int VDimension, class TAllocator = itk::NeighborhoodAllocator<TPixel>>
typedef WaveletOperatorBase otb::WaveletOperatorBase< TMotherWaveletOperator, TPixel, VDimension, TAllocator >::Self

Standard typedefs

Definition at line 80 of file otbWaveletOperatorBase.h.

template<Wavelet::Wavelet TMotherWaveletOperator, class TPixel , unsigned int VDimension, class TAllocator = itk::NeighborhoodAllocator<TPixel>>
typedef Superclass::SizeType otb::WaveletOperatorBase< TMotherWaveletOperator, TPixel, VDimension, TAllocator >::SizeType

Definition at line 83 of file otbWaveletOperatorBase.h.

template<Wavelet::Wavelet TMotherWaveletOperator, class TPixel , unsigned int VDimension, class TAllocator = itk::NeighborhoodAllocator<TPixel>>
typedef itk::NeighborhoodOperator<TPixel, VDimension, TAllocator> otb::WaveletOperatorBase< TMotherWaveletOperator, TPixel, VDimension, TAllocator >::Superclass

Definition at line 81 of file otbWaveletOperatorBase.h.

template<Wavelet::Wavelet TMotherWaveletOperator, class TPixel , unsigned int VDimension, class TAllocator = itk::NeighborhoodAllocator<TPixel>>
typedef WaveletGeneratorType::Pointer otb::WaveletOperatorBase< TMotherWaveletOperator, TPixel, VDimension, TAllocator >::WaveletGeneratorPointerType
protected

Definition at line 146 of file otbWaveletOperatorBase.h.

template<Wavelet::Wavelet TMotherWaveletOperator, class TPixel , unsigned int VDimension, class TAllocator = itk::NeighborhoodAllocator<TPixel>>
typedef WaveletGenerator<TMotherWaveletOperator> otb::WaveletOperatorBase< TMotherWaveletOperator, TPixel, VDimension, TAllocator >::WaveletGeneratorType
protected

Definition at line 145 of file otbWaveletOperatorBase.h.

Constructor & Destructor Documentation

template<Wavelet::Wavelet TMotherWaveletOperator, class TPixel , unsigned int VDimension, class TAllocator = itk::NeighborhoodAllocator<TPixel>>
otb::WaveletOperatorBase< TMotherWaveletOperator, TPixel, VDimension, TAllocator >::WaveletOperatorBase ( )
inline

Construction

Definition at line 90 of file otbWaveletOperatorBase.h.

template<Wavelet::Wavelet TMotherWaveletOperator, class TPixel , unsigned int VDimension, class TAllocator = itk::NeighborhoodAllocator<TPixel>>
otb::WaveletOperatorBase< TMotherWaveletOperator, TPixel, VDimension, TAllocator >::WaveletOperatorBase ( const Self other)
inline

Construction by copy

Definition at line 97 of file otbWaveletOperatorBase.h.

template<Wavelet::Wavelet TMotherWaveletOperator, class TPixel , unsigned int VDimension, class TAllocator = itk::NeighborhoodAllocator<TPixel>>
otb::WaveletOperatorBase< TMotherWaveletOperator, TPixel, VDimension, TAllocator >::~WaveletOperatorBase ( )
inlineoverride

Definition at line 104 of file otbWaveletOperatorBase.h.

Member Function Documentation

template<Wavelet::Wavelet TMotherWaveletOperator, class TPixel , unsigned int VDimension, class TAllocator = itk::NeighborhoodAllocator<TPixel>>
void otb::WaveletOperatorBase< TMotherWaveletOperator, TPixel, VDimension, TAllocator >::Fill ( const CoefficientVector coeff)
inlineoverrideprotectedvirtual

Arranges coefficients spatially in the memory buffer.

Implements itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >.

Definition at line 192 of file otbWaveletOperatorBase.h.

template<Wavelet::Wavelet TMotherWaveletOperator, class TPixel , unsigned int VDimension, class TAllocator >
void otb::WaveletOperatorBase< TMotherWaveletOperator, TPixel, VDimension, TAllocator >::GenerateInverseHighPassFilterFromLowPassFilter ( CoefficientVector coeff)
protected

Performs the definition of high pass filter in an orthogonal framework It follows conjugate quadrature filter (CQF) of the chapter 5 of "Ten Lecture on Wavelets", of Ingrid Daubechies, Society for Industrial and Applied Mathematics, 1992.

It defines filter coefficients as $ G(z) = z H(-z^{-1}) $. According to Daubechies'notation, it concerns the synthesis (Inverse) part of the filter banc.

Definition at line 98 of file otbWaveletOperatorBase.hxx.

template<Wavelet::Wavelet TMotherWaveletOperator, class TPixel , unsigned int VDimension, class TAllocator >
void otb::WaveletOperatorBase< TMotherWaveletOperator, TPixel, VDimension, TAllocator >::GenerateInverseLowPassFilterFromHighPassFilter ( CoefficientVector coeff)
protected

Performs the definition of low pass filter in the reconstruction step of the conjugate quadrature filter (CQF) framework.

It defines filter coefficients as $ {\tilde H}(z) = G(-z) $.

Definition at line 127 of file otbWaveletOperatorBase.hxx.

template<Wavelet::Wavelet TMotherWaveletOperator, class TPixel , unsigned int VDimension, class TAllocator = itk::NeighborhoodAllocator<TPixel>>
virtual const char* otb::WaveletOperatorBase< TMotherWaveletOperator, TPixel, VDimension, TAllocator >::GetNameOfClass ( ) const
virtual
template<Wavelet::Wavelet TMotherWaveletOperator, class TPixel , unsigned int VDimension, class TAllocator = itk::NeighborhoodAllocator<TPixel>>
unsigned int otb::WaveletOperatorBase< TMotherWaveletOperator, TPixel, VDimension, TAllocator >::GetUpSampleFactor ( ) const
inline

Get the level of up sampling of the filter

Definition at line 118 of file otbWaveletOperatorBase.h.

template<Wavelet::Wavelet TMotherWaveletOperator, class TPixel , unsigned int VDimension, class TAllocator = itk::NeighborhoodAllocator<TPixel>>
virtual const char* otb::WaveletOperatorBase< TMotherWaveletOperator, TPixel, VDimension, TAllocator >::GetWaveletName ( ) const
inlinevirtual

Get the name of the wavelet when necessary

Definition at line 134 of file otbWaveletOperatorBase.h.

template<Wavelet::Wavelet TMotherWaveletOperator, class TPixel , unsigned int VDimension, class TAllocator = itk::NeighborhoodAllocator<TPixel>>
Self& otb::WaveletOperatorBase< TMotherWaveletOperator, TPixel, VDimension, TAllocator >::operator= ( const Self other)
inline

Assignment operator

Definition at line 107 of file otbWaveletOperatorBase.h.

template<Wavelet::Wavelet TMotherWaveletOperator, class TPixel , unsigned int VDimension, class TAllocator >
void otb::WaveletOperatorBase< TMotherWaveletOperator, TPixel, VDimension, TAllocator >::PrintSelf ( std::ostream &  os,
itk::Indent  i 
) const
overrideprotectedvirtual

Prints some debugging information

Reimplemented from itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >.

Definition at line 36 of file otbWaveletOperatorBase.hxx.

References itk::Indent::GetNextIndent().

template<Wavelet::Wavelet TMotherWaveletOperator, class TPixel , unsigned int VDimension, class TAllocator >
void otb::WaveletOperatorBase< TMotherWaveletOperator, TPixel, VDimension, TAllocator >::ReduceFilterLength ( CoefficientVector coeff)
protected

Reduce extra zeros on filters

Definition at line 157 of file otbWaveletOperatorBase.hxx.

template<Wavelet::Wavelet TMotherWaveletOperator, class TPixel , unsigned int VDimension, class TAllocator >
void otb::WaveletOperatorBase< TMotherWaveletOperator, TPixel, VDimension, TAllocator >::RevertFilter ( CoefficientVector coeff)
protected

Performs filter reversion, ie. $ H(z^{-1}) $.

Definition at line 78 of file otbWaveletOperatorBase.hxx.

template<Wavelet::Wavelet TMotherWaveletOperator, class TPixel , unsigned int VDimension, class TAllocator = itk::NeighborhoodAllocator<TPixel>>
void otb::WaveletOperatorBase< TMotherWaveletOperator, TPixel, VDimension, TAllocator >::SetUpSampleFactor ( unsigned int  upSampleFactor)
inline

Set the level of up sampling of the filter

Definition at line 126 of file otbWaveletOperatorBase.h.

template<Wavelet::Wavelet TMotherWaveletOperator, class TPixel , unsigned int VDimension, class TAllocator >
void otb::WaveletOperatorBase< TMotherWaveletOperator, TPixel, VDimension, TAllocator >::UpSamplingCoefficients ( CoefficientVector coeff)
protected

Perform the "a-trou" algorithm for shift-invariant transformation. It transforms the filter $ H(z) $ into $ H(z^2) $.

Definition at line 55 of file otbWaveletOperatorBase.hxx.

Member Data Documentation

template<Wavelet::Wavelet TMotherWaveletOperator, class TPixel , unsigned int VDimension, class TAllocator = itk::NeighborhoodAllocator<TPixel>>
unsigned int otb::WaveletOperatorBase< TMotherWaveletOperator, TPixel, VDimension, TAllocator >::m_UpSampleFactor
protected

Definition at line 277 of file otbWaveletOperatorBase.h.

template<Wavelet::Wavelet TMotherWaveletOperator, class TPixel , unsigned int VDimension, class TAllocator = itk::NeighborhoodAllocator<TPixel>>
WaveletGeneratorPointerType otb::WaveletOperatorBase< TMotherWaveletOperator, TPixel, VDimension, TAllocator >::m_WaveletGenerator
protected

Definition at line 278 of file otbWaveletOperatorBase.h.

template<Wavelet::Wavelet TMotherWaveletOperator, class TPixel , unsigned int VDimension, class TAllocator = itk::NeighborhoodAllocator<TPixel>>
const MotherWaveletOperatorEnumType otb::WaveletOperatorBase< TMotherWaveletOperator, TPixel, VDimension, TAllocator >::MotherWaveletOperator = TMotherWaveletOperator
static

Definition at line 87 of file otbWaveletOperatorBase.h.


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