23 #ifndef otbWaveletFilterBank_h
24 #define otbWaveletFilterBank_h
26 #include "itkProgressReporter.h"
27 #include "itkImageToImageFilter.h"
28 #include "itkConstNeighborhoodIterator.h"
29 #include "itkImageRegionIterator.h"
30 #include "itkNeighborhoodAlgorithm.h"
31 #include "itkNeighborhoodInnerProduct.h"
86 template <
class TInputImage,
class TOutputImage,
class TWaveletOperator, Wavelet::WaveletDirection TDirectionOfTransformation>
87 class ITK_EXPORT
WaveletFilterBank :
public itk::ImageToImageFilter<TInputImage, TOutputImage>
92 typedef itk::ImageToImageFilter<TInputImage, TOutputImage>
Superclass;
105 this->DynamicMultiThreadingOff();
157 template <
class TInputImage,
class TOutputImage,
class TWaveletOperator>
163 typedef itk::ImageToImageFilter<TInputImage, TOutputImage>
Superclass;
196 itkStaticConstMacro(InputImageDimension,
unsigned int, TInputImage::ImageDimension);
197 itkStaticConstMacro(OutputImageDimension,
unsigned int, TOutputImage::ImageDimension);
203 itkGetMacro(UpSampleFilterFactor,
unsigned int);
204 itkSetMacro(UpSampleFilterFactor,
unsigned int);
214 itkGetMacro(SubsampleImageFactor,
unsigned int);
215 itkSetMacro(SubsampleImageFactor,
unsigned int);
228 void GenerateOutputInformation()
override;
239 void GenerateInputRequestedRegion()
override;
244 void BeforeThreadedGenerateData()
override;
250 virtual void AllocateInternalData(
const OutputImageRegionType& outputRegion);
255 void AfterThreadedGenerateData()
override;
262 void CallCopyOutputRegionToInputRegion(InputImageRegionType& destRegion,
const OutputImageRegionType& srcRegion)
override;
263 void CallCopyInputRegionToOutputRegion(OutputImageRegionType& destRegion,
const InputImageRegionType& srcRegion)
override;
270 virtual void CallCopyOutputRegionToInputRegion(
unsigned int direction, InputImageRegionType& destRegion,
const OutputImageRegionType& srcRegion);
271 virtual void CallCopyInputRegionToOutputRegion(
unsigned int direction, OutputImageRegionType& destRegion,
const InputImageRegionType& srcRegion);
275 void ThreadedGenerateData(
const OutputImageRegionType& outputRegionForThread, itk::ThreadIdType threadId)
override;
278 virtual void ThreadedGenerateDataAtDimensionN(
unsigned int idx,
unsigned int direction, itk::ProgressReporter& reporter,
279 const OutputImageRegionType& outputRegionForThread, itk::ThreadIdType threadId);
340 template <
class TInputImage,
class TOutputImage,
class TWaveletOperator>
346 typedef itk::ImageToImageFilter<TInputImage, TOutputImage>
Superclass;
379 itkStaticConstMacro(InputImageDimension,
unsigned int, TInputImage::ImageDimension);
380 itkStaticConstMacro(OutputImageDimension,
unsigned int, TOutputImage::ImageDimension);
386 itkGetMacro(UpSampleFilterFactor,
unsigned int);
387 itkSetMacro(UpSampleFilterFactor,
unsigned int);
397 itkGetMacro(SubsampleImageFactor,
unsigned int);
398 itkSetMacro(SubsampleImageFactor,
unsigned int);
415 void GenerateOutputInformation()
override;
426 void GenerateInputRequestedRegion()
override;
431 void BeforeThreadedGenerateData()
override;
437 virtual void AllocateInternalData(
const OutputImageRegionType& outputRegion);
442 void AfterThreadedGenerateData()
override;
449 void CallCopyOutputRegionToInputRegion(InputImageRegionType& destRegion,
const OutputImageRegionType& srcRegion)
override;
450 void CallCopyInputRegionToOutputRegion(OutputImageRegionType& destRegion,
const InputImageRegionType& srcRegion)
override;
457 virtual void CallCopyOutputRegionToInputRegion(
unsigned int direction, InputImageRegionType& destRegion,
const OutputImageRegionType& srcRegion);
458 virtual void CallCopyInputRegionToOutputRegion(
unsigned int direction, OutputImageRegionType& destRegion,
const InputImageRegionType& srcRegion);
462 void ThreadedGenerateData(
const OutputImageRegionType& outputRegionForThread, itk::ThreadIdType threadId)
override;
468 virtual void ThreadedGenerateDataAtDimensionN(
unsigned int direction, itk::ProgressReporter& reporter,
const OutputImageRegionType& outputRegionForThread,
469 itk::ThreadIdType threadId);
490 #ifndef OTB_MANUAL_INSTANTIATION
One level stationary wavelet transform.
itk::SmartPointer< const Self > ConstPointer
virtual ~WaveletFilterBank()
itk::ImageToImageFilter< TInputImage, TOutputImage > Superclass
void operator=(const Self &)
itk::SmartPointer< Self > Pointer
WaveletFilterBank(const Self &)
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.