Orfeo ToolBox  4.2
Orfeo ToolBox is not a black box
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD > Class Template Reference

#include <otbWaveletFilterBank.h>

+ Inheritance diagram for otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >:
+ Collaboration diagram for otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >:

Public Types

typedef itk::SmartPointer
< const Self
ConstPointer
 
typedef Wavelet::WaveletDirection DirectionOfTransformationEnumType
 
typedef
WaveletOperatorType::HighPassOperator 
HighPassOperatorType
 
typedef InputImageType::Pointer InputImagePointerType
 
typedef InputImageType::RegionType InputImageRegionType
 
typedef TInputImage InputImageType
 
typedef InputImageType::IndexType InputIndexType
 
typedef InputImageType::PixelType InputPixelType
 
typedef InputImageType::SizeType InputSizeType
 
typedef
WaveletOperatorType::LowPassOperator 
LowPassOperatorType
 
typedef OutputImageType::Pointer OutputImagePointerType
 
typedef OutputImageType::RegionType OutputImageRegionType
 
typedef TOutputImage OutputImageType
 
typedef OutputImageType::IndexType OutputIndexType
 
typedef OutputImageType::PixelType OutputPixelType
 
typedef OutputImageType::SizeType OutputSizeType
 
typedef itk::SmartPointer< SelfPointer
 
typedef WaveletFilterBank Self
 
typedef
itk::ImageToImageFilter
< TInputImage, TOutputImage > 
Superclass
 
typedef TWaveletOperator WaveletOperatorType
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
 
virtual const char * GetNameOfClass () const
 
virtual unsigned int GetSubsampleImageFactor ()
 
virtual unsigned int GetUpSampleFilterFactor ()
 
virtual void SetSubsampleImageFactor (unsigned int _arg)
 
virtual void SetUpSampleFilterFactor (unsigned int _arg)
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from itk::ImageSource< TOutputImage >
static const
ImageRegionSplitterBase
GetGlobalDefaultSplitter (void)
 

Static Public Attributes

static const
DirectionOfTransformationEnumType 
DirectionOfTransformation = Wavelet::FORWARD
 
static const unsigned int InputImageDimension = TInputImage::ImageDimension
 
static const unsigned int OutputImageDimension = TOutputImage::ImageDimension
 

Protected Member Functions

 WaveletFilterBank ()
 
virtual ~WaveletFilterBank ()
 
virtual void AfterThreadedGenerateData ()
 
virtual void AllocateInternalData (const OutputImageRegionType &outputRegion)
 
virtual void BeforeThreadedGenerateData ()
 
virtual void CallCopyInputRegionToOutputRegion (OutputImageRegionType &destRegion, const InputImageRegionType &srcRegion)
 
virtual void CallCopyInputRegionToOutputRegion (unsigned int direction, OutputImageRegionType &destRegion, const InputImageRegionType &srcRegion)
 
virtual void CallCopyOutputRegionToInputRegion (InputImageRegionType &destRegion, const OutputImageRegionType &srcRegion)
 
virtual void CallCopyOutputRegionToInputRegion (unsigned int direction, InputImageRegionType &destRegion, const OutputImageRegionType &srcRegion)
 
virtual void GenerateInputRequestedRegion () throw (itk::InvalidRequestedRegionError)
 
virtual void GenerateOutputInformation ()
 
virtual void ThreadedGenerateData (const OutputImageRegionType &outputRegionForThread, itk::ThreadIdType threadId)
 
virtual void ThreadedGenerateDataAtDimensionN (unsigned int idx, unsigned int direction, itk::ProgressReporter &reporter, const OutputImageRegionType &outputRegionForThread, itk::ThreadIdType threadId)
 

Private Types

typedef std::vector
< OutputImagePointerType
InternalImagesTabular
 

Private Member Functions

 WaveletFilterBank (const Self &)
 
void operator= (const Self &)
 

Private Attributes

std::vector
< InternalImagesTabular
m_InternalImages
 
unsigned int m_SubsampleImageFactor
 
unsigned int m_UpSampleFilterFactor
 

Detailed Description

template<class TInputImage, class TOutputImage, class TWaveletOperator>
class otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >

Definition at line 149 of file otbWaveletFilterBank.h.

Member Typedef Documentation

template<class TInputImage , class TOutputImage , class TWaveletOperator >
typedef itk::SmartPointer<const Self> otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::ConstPointer

Definition at line 157 of file otbWaveletFilterBank.h.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
typedef Wavelet::WaveletDirection otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::DirectionOfTransformationEnumType

Definition at line 184 of file otbWaveletFilterBank.h.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
typedef WaveletOperatorType::HighPassOperator otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::HighPassOperatorType

Definition at line 182 of file otbWaveletFilterBank.h.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
typedef InputImageType::Pointer otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::InputImagePointerType

Definition at line 167 of file otbWaveletFilterBank.h.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
typedef InputImageType::RegionType otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::InputImageRegionType

Definition at line 168 of file otbWaveletFilterBank.h.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
typedef TInputImage otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::InputImageType

Template parameters typedefs

Definition at line 163 of file otbWaveletFilterBank.h.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
typedef InputImageType::IndexType otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::InputIndexType

Definition at line 170 of file otbWaveletFilterBank.h.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
typedef InputImageType::PixelType otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::InputPixelType

Definition at line 171 of file otbWaveletFilterBank.h.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
typedef InputImageType::SizeType otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::InputSizeType

Definition at line 169 of file otbWaveletFilterBank.h.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
typedef std::vector<OutputImagePointerType> otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::InternalImagesTabular
private

the easiest way to store internal images is to keep track of the splits at each direction. Then, std::vector< InternalImagesTabular > is a tab of size ImageDimension-1 and each InternalImagesTabular contains intermediate images.

Definition at line 286 of file otbWaveletFilterBank.h.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
typedef WaveletOperatorType::LowPassOperator otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::LowPassOperatorType

Definition at line 181 of file otbWaveletFilterBank.h.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
typedef OutputImageType::Pointer otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::OutputImagePointerType

Definition at line 174 of file otbWaveletFilterBank.h.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
typedef OutputImageType::RegionType otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::OutputImageRegionType

Definition at line 175 of file otbWaveletFilterBank.h.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
typedef TOutputImage otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::OutputImageType

Definition at line 173 of file otbWaveletFilterBank.h.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
typedef OutputImageType::IndexType otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::OutputIndexType

Definition at line 177 of file otbWaveletFilterBank.h.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
typedef OutputImageType::PixelType otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::OutputPixelType

Definition at line 178 of file otbWaveletFilterBank.h.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
typedef OutputImageType::SizeType otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::OutputSizeType

Definition at line 176 of file otbWaveletFilterBank.h.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
typedef itk::SmartPointer<Self> otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::Pointer

Definition at line 156 of file otbWaveletFilterBank.h.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
typedef WaveletFilterBank otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::Self

Standard typedefs

Definition at line 154 of file otbWaveletFilterBank.h.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
typedef itk::ImageToImageFilter<TInputImage, TOutputImage> otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::Superclass

Definition at line 155 of file otbWaveletFilterBank.h.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
typedef TWaveletOperator otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::WaveletOperatorType

Definition at line 180 of file otbWaveletFilterBank.h.

Constructor & Destructor Documentation

template<class TInputImage , class TOutputImage , class TWaveletOperator >
otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::WaveletFilterBank ( )
protected

Template Specialization for the Wavelet::FORWARD case

Definition at line 45 of file otbWaveletFilterBank.txx.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
virtual otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::~WaveletFilterBank ( )
inlineprotectedvirtual

Definition at line 209 of file otbWaveletFilterBank.h.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::WaveletFilterBank ( const Self )
private

Member Function Documentation

template<class TInputImage , class TOutputImage , class TWaveletOperator >
void otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::AfterThreadedGenerateData ( void  )
protectedvirtual

AfterThreadedGenerateData. It enforce memory destruction of internal images

Definition at line 205 of file otbWaveletFilterBank.txx.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
void otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::AllocateInternalData ( const OutputImageRegionType outputRegion)
protectedvirtual

Internal Data Allocation If m_SubsampleImageFactor != 1, internal data with progressive region size subsampling if required...

Definition at line 180 of file otbWaveletFilterBank.txx.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
void otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::BeforeThreadedGenerateData ( void  )
protectedvirtual

BeforeThreadedGenerateData. It allocates also internal images

Definition at line 138 of file otbWaveletFilterBank.txx.

References itk::DataObjectError::SetDataObject(), itk::DataObjectError::SetDescription(), and itk::DataObjectError::SetLocation().

template<class TInputImage , class TOutputImage , class TWaveletOperator >
void otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::CallCopyInputRegionToOutputRegion ( OutputImageRegionType destRegion,
const InputImageRegionType srcRegion 
)
protectedvirtual

Definition at line 312 of file otbWaveletFilterBank.txx.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
void otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::CallCopyInputRegionToOutputRegion ( unsigned int  direction,
OutputImageRegionType destRegion,
const InputImageRegionType srcRegion 
)
protectedvirtual

Definition at line 340 of file otbWaveletFilterBank.txx.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
void otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::CallCopyOutputRegionToInputRegion ( InputImageRegionType destRegion,
const OutputImageRegionType srcRegion 
)
protectedvirtual

CallCopyOutputRegionToInputRegion Since input and output image may be of different size when a subsampling factor has tp be applied, Region estimation functions has to be reimplemented

Definition at line 217 of file otbWaveletFilterBank.txx.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
void otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::CallCopyOutputRegionToInputRegion ( unsigned int  direction,
InputImageRegionType destRegion,
const OutputImageRegionType srcRegion 
)
protectedvirtual

CallCopyOutputRegionToInputRegion This function is also redefined in order to adapt the shape of the regions with resect to the direction (among the dimensions) of the filtering.

Definition at line 276 of file otbWaveletFilterBank.txx.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
virtual::itk::LightObject::Pointer otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::CreateAnother ( void  ) const
template<class TInputImage , class TOutputImage , class TWaveletOperator >
void otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::GenerateInputRequestedRegion ( void  )
throw (itk::InvalidRequestedRegionError
)
protectedvirtual

The forward transformation needs a larger input requested region than the output requested region (larger by subsampling but also by the kernel size used in the filter bank).

Then, the class needs to provide an implementation for GenerateInputRequestedRegion() in order to inform the pipeline execution model.

See Also
ImageToImageFilter::GenerateInputRequestedRegion()

Definition at line 95 of file otbWaveletFilterBank.txx.

References itk::DataObjectError::SetDataObject(), itk::DataObjectError::SetDescription(), and itk::DataObjectError::SetLocation().

template<class TInputImage , class TOutputImage , class TWaveletOperator >
void otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::GenerateOutputInformation ( void  )
protectedvirtual

GenerateOutputInformation Set the size of the output image depending on the decimation factor Copy informations from the input image if existing.

Definition at line 67 of file otbWaveletFilterBank.txx.

References otbGenericMsgDebugMacro.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
virtual const char* otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::GetNameOfClass ( ) const
virtual

Creation through object factory macro

Reimplemented from itk::ImageSource< TOutputImage >.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
virtual unsigned int otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::GetSubsampleImageFactor ( )
virtual

Set/Get the level of down sampling of the image used in forward algorithm. (or upsampling in the inverse case)

In this implementation, we are not dealing with M-band decomposition then m_SubsampleImageFactor is most likely to be 1 or 2... but in any case integer and not real...

template<class TInputImage , class TOutputImage , class TWaveletOperator >
virtual unsigned int otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::GetUpSampleFilterFactor ( )
virtual

Set/Get the level of up sampling of the filter used in the A-trou algorithm.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
static Pointer otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::New ( )
static

Type macro

template<class TInputImage , class TOutputImage , class TWaveletOperator >
void otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::operator= ( const Self )
private
template<class TInputImage , class TOutputImage , class TWaveletOperator >
virtual void otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::SetSubsampleImageFactor ( unsigned int  _arg)
virtual
template<class TInputImage , class TOutputImage , class TWaveletOperator >
virtual void otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::SetUpSampleFilterFactor ( unsigned int  _arg)
virtual
template<class TInputImage , class TOutputImage , class TWaveletOperator >
void otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::ThreadedGenerateData ( const OutputImageRegionType outputRegionForThread,
itk::ThreadIdType  threadId 
)
protectedvirtual

Generate data redefinition

Definition at line 377 of file otbWaveletFilterBank.txx.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
void otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::ThreadedGenerateDataAtDimensionN ( unsigned int  idx,
unsigned int  direction,
itk::ProgressReporter reporter,
const OutputImageRegionType outputRegionForThread,
itk::ThreadIdType  threadId 
)
protectedvirtual

Iterative call to the forward filter bank at each dimension.

Inner product iterators

Definition at line 490 of file otbWaveletFilterBank.txx.

References itk::ProgressReporter::CompletedPixel(), itk::ImageConstIterator< TImage >::Get(), itk::ImageRegionConstIterator< TImage >::GoToBegin(), and itk::ImageConstIterator< TImage >::IsAtEnd().

Member Data Documentation

template<class TInputImage , class TOutputImage , class TWaveletOperator >
const DirectionOfTransformationEnumType otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::DirectionOfTransformation = Wavelet::FORWARD
static

Definition at line 185 of file otbWaveletFilterBank.h.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
const unsigned int otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::InputImageDimension = TInputImage::ImageDimension
static

Dimension

Definition at line 188 of file otbWaveletFilterBank.h.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
std::vector<InternalImagesTabular> otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::m_InternalImages
private

Definition at line 287 of file otbWaveletFilterBank.h.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
unsigned int otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::m_SubsampleImageFactor
private

Definition at line 279 of file otbWaveletFilterBank.h.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
unsigned int otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::m_UpSampleFilterFactor
private

Definition at line 278 of file otbWaveletFilterBank.h.

template<class TInputImage , class TOutputImage , class TWaveletOperator >
const unsigned int otb::WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, Wavelet::FORWARD >::OutputImageDimension = TOutputImage::ImageDimension
static

Definition at line 189 of file otbWaveletFilterBank.h.


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