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;
108 void operator=(
const Self&);
154 template <
class TInputImage,
class TOutputImage,
class TWaveletOperator>
160 typedef itk::ImageToImageFilter<TInputImage, TOutputImage>
Superclass;
193 itkStaticConstMacro(InputImageDimension,
unsigned int, TInputImage::ImageDimension);
194 itkStaticConstMacro(OutputImageDimension,
unsigned int, TOutputImage::ImageDimension);
200 itkGetMacro(UpSampleFilterFactor,
unsigned int);
201 itkSetMacro(UpSampleFilterFactor,
unsigned int);
211 itkGetMacro(SubsampleImageFactor,
unsigned int);
212 itkSetMacro(SubsampleImageFactor,
unsigned int);
225 void GenerateOutputInformation()
override;
236 void GenerateInputRequestedRegion()
override;
241 void BeforeThreadedGenerateData()
override;
247 virtual void AllocateInternalData(
const OutputImageRegionType& outputRegion);
252 void AfterThreadedGenerateData()
override;
259 void CallCopyOutputRegionToInputRegion(InputImageRegionType& destRegion,
const OutputImageRegionType& srcRegion)
override;
260 void CallCopyInputRegionToOutputRegion(OutputImageRegionType& destRegion,
const InputImageRegionType& srcRegion)
override;
267 virtual void CallCopyOutputRegionToInputRegion(
unsigned int direction, InputImageRegionType& destRegion,
const OutputImageRegionType& srcRegion);
268 virtual void CallCopyInputRegionToOutputRegion(
unsigned int direction, OutputImageRegionType& destRegion,
const InputImageRegionType& srcRegion);
272 void ThreadedGenerateData(
const OutputImageRegionType& outputRegionForThread, itk::ThreadIdType threadId)
override;
275 virtual void ThreadedGenerateDataAtDimensionN(
unsigned int idx,
unsigned int direction, itk::ProgressReporter& reporter,
276 const OutputImageRegionType& outputRegionForThread, itk::ThreadIdType threadId);
280 void operator=(
const Self&);
337 template <
class TInputImage,
class TOutputImage,
class TWaveletOperator>
343 typedef itk::ImageToImageFilter<TInputImage, TOutputImage>
Superclass;
376 itkStaticConstMacro(InputImageDimension,
unsigned int, TInputImage::ImageDimension);
377 itkStaticConstMacro(OutputImageDimension,
unsigned int, TOutputImage::ImageDimension);
383 itkGetMacro(UpSampleFilterFactor,
unsigned int);
384 itkSetMacro(UpSampleFilterFactor,
unsigned int);
394 itkGetMacro(SubsampleImageFactor,
unsigned int);
395 itkSetMacro(SubsampleImageFactor,
unsigned int);
412 void GenerateOutputInformation()
override;
423 void GenerateInputRequestedRegion()
override;
428 void BeforeThreadedGenerateData()
override;
434 virtual void AllocateInternalData(
const OutputImageRegionType& outputRegion);
439 void AfterThreadedGenerateData()
override;
446 void CallCopyOutputRegionToInputRegion(InputImageRegionType& destRegion,
const OutputImageRegionType& srcRegion)
override;
447 void CallCopyInputRegionToOutputRegion(OutputImageRegionType& destRegion,
const InputImageRegionType& srcRegion)
override;
454 virtual void CallCopyOutputRegionToInputRegion(
unsigned int direction, InputImageRegionType& destRegion,
const OutputImageRegionType& srcRegion);
455 virtual void CallCopyInputRegionToOutputRegion(
unsigned int direction, OutputImageRegionType& destRegion,
const InputImageRegionType& srcRegion);
459 void ThreadedGenerateData(
const OutputImageRegionType& outputRegionForThread, itk::ThreadIdType threadId)
override;
465 virtual void ThreadedGenerateDataAtDimensionN(
unsigned int direction, itk::ProgressReporter& reporter,
const OutputImageRegionType& outputRegionForThread,
466 itk::ThreadIdType threadId);
470 void operator=(
const Self&);
487 #ifndef OTB_MANUAL_INSTANTIATION