OTB  9.0.0
Orfeo Toolbox
List of all members

#include <otbOverlapSaveConvolutionImageFilter.h>

+ Inheritance diagram for otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >:
+ Collaboration diagram for otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >:
typedef TInputImage InputImageType
 
typedef TOutputImage OutputImageType
 
typedef OverlapSaveConvolutionImageFilter Self
 
typedef itk::ImageToImageFilter< InputImageType, OutputImageTypeSuperclass
 
typedef itk::SmartPointer< SelfPointer
 
typedef itk::SmartPointer< const SelfConstPointer
 
typedef InputImageType::PixelType InputPixelType
 
typedef OutputImageType::PixelType OutputPixelType
 
typedef itk::NumericTraits< InputPixelType >::RealType InputRealType
 
typedef InputImageType::RegionType InputImageRegionType
 
typedef OutputImageType::RegionType OutputImageRegionType
 
typedef InputImageType::SizeType InputSizeType
 
typedef itk::Array< InputRealTypeArrayType
 
typedef TBoundaryCondition BoundaryConditionType
 
static const unsigned int InputImageDimension = TInputImage::ImageDimension
 
static const unsigned int OutputImageDimension = TOutputImage::ImageDimension
 
InputSizeType m_Radius
 
ArrayType m_Filter
 
bool m_NormalizeFilter
 
static Pointer New ()
 
virtual ::itk::LightObject::Pointer CreateAnother (void) const
 
virtual const char * GetNameOfClass () const
 
virtual void SetRadius (const InputSizeType rad)
 
virtual const InputSizeTypeGetRadius () const
 
void SetFilter (ArrayType filter)
 
virtual const ArrayTypeGetFilter () const
 
virtual void SetNormalizeFilter (bool _arg)
 
virtual bool GetNormalizeFilter ()
 
virtual void NormalizeFilterOn ()
 
virtual void NormalizeFilterOff ()
 
void GenerateInputRequestedRegion () override
 
 typedef (itk::Concept::HasNumericTraits< InputPixelType >) InputHasNumericTraitsCheck
 
 OverlapSaveConvolutionImageFilter ()
 
 ~OverlapSaveConvolutionImageFilter () override
 
void PrintSelf (std::ostream &os, itk::Indent indent) const override
 
void GenerateData () override
 
 OverlapSaveConvolutionImageFilter (const Self &)=delete
 
void operator= (const Self &)=delete
 

Detailed Description

template<class TInputImage, class TOutputImage, class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
class otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >

This filter implements the convolution operation between a kernel and an image using the overlap save algorithm (http://wikipedia.org/wiki/Overlap-save_method).

This method takes advantages of the FFTW implementation of Fast Fourrier Transform to exchange an intensive convolution product in the space domain for a simple term by term product in the Fourrier domain. This result in tremendous speed gain when using large kernel with exactly the same result as the classical convolution filter.

Note
This filter could be threaded but requires additional design due to limited thread-safety of the FFTW library.
For the moment only constant zero boundary conditions are used in this filter. This could produce very different results from the classical convolution filter with zero flux neumann boundary condition, especially with large kernels.
ITK must be set to use FFTW (double implementation) for this filter to work properly. If not, exception will be raised at filter creation. Install fftw and set the cmake variable ITK_USE_FFTWD to ON.
See also
ConvolutionImageFilter

Definition at line 62 of file otbOverlapSaveConvolutionImageFilter.h.

Member Typedef Documentation

◆ ArrayType

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
typedef itk::Array<InputRealType> otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::ArrayType

Convenient typedefs for simplifying declarations.

Definition at line 93 of file otbOverlapSaveConvolutionImageFilter.h.

◆ BoundaryConditionType

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
typedef TBoundaryCondition otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::BoundaryConditionType

Convenient typedefs for simplifying declarations.

Definition at line 94 of file otbOverlapSaveConvolutionImageFilter.h.

◆ ConstPointer

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
typedef itk::SmartPointer<const Self> otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::ConstPointer

Convenient typedefs for simplifying declarations.

Definition at line 78 of file otbOverlapSaveConvolutionImageFilter.h.

◆ InputImageRegionType

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
typedef InputImageType::RegionType otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::InputImageRegionType

Convenient typedefs for simplifying declarations.

Definition at line 90 of file otbOverlapSaveConvolutionImageFilter.h.

◆ InputImageType

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
typedef TInputImage otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::InputImageType

Convenient typedefs for simplifying declarations.

Definition at line 71 of file otbOverlapSaveConvolutionImageFilter.h.

◆ InputPixelType

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
typedef InputImageType::PixelType otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::InputPixelType

Image typedef support.

Definition at line 84 of file otbOverlapSaveConvolutionImageFilter.h.

◆ InputRealType

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
typedef itk::NumericTraits<InputPixelType>::RealType otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::InputRealType

Convenient typedefs for simplifying declarations.

Definition at line 89 of file otbOverlapSaveConvolutionImageFilter.h.

◆ InputSizeType

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
typedef InputImageType::SizeType otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::InputSizeType

Convenient typedefs for simplifying declarations.

Definition at line 92 of file otbOverlapSaveConvolutionImageFilter.h.

◆ OutputImageRegionType

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
typedef OutputImageType::RegionType otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::OutputImageRegionType

Convenient typedefs for simplifying declarations.

Definition at line 91 of file otbOverlapSaveConvolutionImageFilter.h.

◆ OutputImageType

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
typedef TOutputImage otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::OutputImageType

Convenient typedefs for simplifying declarations.

Definition at line 72 of file otbOverlapSaveConvolutionImageFilter.h.

◆ OutputPixelType

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
typedef OutputImageType::PixelType otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::OutputPixelType

Convenient typedefs for simplifying declarations.

Definition at line 88 of file otbOverlapSaveConvolutionImageFilter.h.

◆ Pointer

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
typedef itk::SmartPointer<Self> otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::Pointer

Convenient typedefs for simplifying declarations.

Definition at line 77 of file otbOverlapSaveConvolutionImageFilter.h.

◆ Self

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
typedef OverlapSaveConvolutionImageFilter otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::Self

Standard class typedefs.

Definition at line 75 of file otbOverlapSaveConvolutionImageFilter.h.

◆ Superclass

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
typedef itk::ImageToImageFilter<InputImageType, OutputImageType> otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::Superclass

Convenient typedefs for simplifying declarations.

Definition at line 76 of file otbOverlapSaveConvolutionImageFilter.h.

Constructor & Destructor Documentation

◆ OverlapSaveConvolutionImageFilter() [1/2]

template<class TInputImage , class TOutputImage , class TBoundaryCondition >
otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::OverlapSaveConvolutionImageFilter
protected

End concept checking Constructor

Definition at line 46 of file otbOverlapSaveConvolutionImageFilter.hxx.

◆ ~OverlapSaveConvolutionImageFilter()

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::~OverlapSaveConvolutionImageFilter ( )
inlineoverrideprotected

destructor

Definition at line 158 of file otbOverlapSaveConvolutionImageFilter.h.

◆ OverlapSaveConvolutionImageFilter() [2/2]

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::OverlapSaveConvolutionImageFilter ( const Self )
privatedelete

Convenient typedefs for simplifying declarations.

Member Function Documentation

◆ CreateAnother()

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
virtual::itk::LightObject::Pointer otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::CreateAnother ( void  ) const

Convenient typedefs for simplifying declarations.

◆ GenerateData()

template<class TInputImage , class TOutputImage , class TBoundaryCondition >
void otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::GenerateData
overrideprotected

Convenient typedefs for simplifying declarations.

Definition at line 109 of file otbOverlapSaveConvolutionImageFilter.hxx.

◆ GenerateInputRequestedRegion()

template<class TInputImage , class TOutputImage , class TBoundaryCondition >
void otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::GenerateInputRequestedRegion
override

Since this filter implements a neighborhood operation, it requests a largest input region than the output region.

Definition at line 55 of file otbOverlapSaveConvolutionImageFilter.hxx.

◆ GetFilter()

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
virtual const ArrayType& otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::GetFilter ( ) const
virtual

Get the filter

◆ GetNameOfClass()

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
virtual const char* otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods).

◆ GetNormalizeFilter()

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
virtual bool otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::GetNormalizeFilter ( )
virtual

Convenient typedefs for simplifying declarations.

◆ GetRadius()

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
virtual const InputSizeType& otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::GetRadius ( ) const
virtual

Get the radius of the neighborhood used to compute the mean

◆ New()

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
static Pointer otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::New ( )
static

Method for creation through the object factory.

◆ NormalizeFilterOff()

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
virtual void otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::NormalizeFilterOff ( )
virtual

Convenient typedefs for simplifying declarations.

◆ NormalizeFilterOn()

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
virtual void otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::NormalizeFilterOn ( )
virtual

Convenient typedefs for simplifying declarations.

◆ operator=()

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
void otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::operator= ( const Self )
privatedelete

Convenient typedefs for simplifying declarations.

◆ PrintSelf()

template<class TInputImage , class TOutput , class TBoundaryCondition >
void otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutput, TBoundaryCondition >::PrintSelf ( std::ostream &  os,
itk::Indent  indent 
) const
overrideprotected

Standard "PrintSelf" method

Definition at line 290 of file otbOverlapSaveConvolutionImageFilter.hxx.

◆ SetFilter()

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
void otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::SetFilter ( ArrayType  filter)
inline

Set the input filter

Definition at line 119 of file otbOverlapSaveConvolutionImageFilter.h.

◆ SetNormalizeFilter()

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
virtual void otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::SetNormalizeFilter ( bool  _arg)
virtual

Set/Get methods for the normalization of the filter

◆ SetRadius()

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
virtual void otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::SetRadius ( const InputSizeType  rad)
inlinevirtual

Set the radius of the neighborhood used to compute the mean.

Definition at line 97 of file otbOverlapSaveConvolutionImageFilter.h.

◆ typedef()

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::typedef ( itk::Concept::HasNumericTraits< InputPixelType )

Begin concept checking This class requires InputHasNumericTraitsCheck in the form of (itk::Concept::HasNumericTraits<InputPixelType>)

Member Data Documentation

◆ InputImageDimension

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
const unsigned int otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::InputImageDimension = TInputImage::ImageDimension
static

Extract dimension from input and output image.

Definition at line 66 of file otbOverlapSaveConvolutionImageFilter.h.

◆ m_Filter

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
ArrayType otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::m_Filter
private

Filter array

Definition at line 177 of file otbOverlapSaveConvolutionImageFilter.h.

◆ m_NormalizeFilter

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
bool otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::m_NormalizeFilter
private

Flag for filter normalization

Definition at line 180 of file otbOverlapSaveConvolutionImageFilter.h.

◆ m_Radius

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
InputSizeType otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::m_Radius
private

Radius of the filter

Definition at line 174 of file otbOverlapSaveConvolutionImageFilter.h.

◆ OutputImageDimension

template<class TInputImage , class TOutputImage , class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>>
const unsigned int otb::OverlapSaveConvolutionImageFilter< TInputImage, TOutputImage, TBoundaryCondition >::OutputImageDimension = TOutputImage::ImageDimension
static

Convenient typedefs for simplifying declarations.

Definition at line 67 of file otbOverlapSaveConvolutionImageFilter.h.


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