18#ifndef __itkGenericMultiResolutionPyramidImageFilter_h
19#define __itkGenericMultiResolutionPyramidImageFilter_h
21#include "itkMultiResolutionPyramidImageFilter.h"
22#include "itkSmoothingRecursiveGaussianImageFilter.h"
116template<
class TInputImage,
class TOutputImage,
class TPrecisionType =
double >
118 public MultiResolutionPyramidImageFilter< TInputImage, TOutputImage >
124 typedef MultiResolutionPyramidImageFilter<
135 MultiResolutionPyramidImageFilter );
139 TInputImage::ImageDimension );
141 TOutputImage::ImageDimension );
150 typedef typename Superclass::InputImageType::SpacingType
SpacingType;
151 typedef typename InputImageType::PixelType PixelType;
187 return this->m_Schedule;
215 itkGetConstReferenceMacro( CurrentLevel,
unsigned int );
220 itkGetConstMacro( ComputeOnlyForCurrentLevel,
bool );
221 itkBooleanMacro( ComputeOnlyForCurrentLevel );
223#ifdef ITK_USE_CONCEPT_CHECKING
225 itkConceptMacro( SameDimensionCheck,
226 ( Concept::SameDimension< ImageDimension, OutputImageDimension > ) );
227 itkConceptMacro( OutputHasNumericTraitsCheck,
228 ( Concept::HasNumericTraits< typename TOutputImage::PixelType > ) );
238 void PrintSelf( std::ostream & os, Indent indent )
const override;
275 typedef SmoothingRecursiveGaussianImageFilter<
282 typedef ImageToImageFilter< OutputImageType, OutputImageType >
284 typedef ImageToImageFilter< InputImageType, OutputImageType >
291 typename SmootherType::Pointer & smoother,
298 typename SmootherType::Pointer & smoother,
302 typename ImageToImageFilterSameTypes::Pointer & rescaleSameTypes,
303 typename ImageToImageFilterDifferentTypes::Pointer & rescaleDifferentTypes );
310 typename ImageToImageFilterSameTypes::Pointer & rescaleSameTypes,
311 typename ImageToImageFilterDifferentTypes::Pointer & rescaleDifferentTypes );
323 const unsigned int dim,
324 const unsigned int * factors,
360#ifndef ITK_MANUAL_INSTANTIATION
361#include "itkGenericMultiResolutionPyramidImageFilter.hxx"
Framework for creating images in a multi-resolution pyramid.
ImageToImageFilter< InputImageType, OutputImageType > ImageToImageFilterDifferentTypes
void operator=(const Self &)
SmartPointer< const Self > ConstPointer
Array2D< ScalarRealType > SmoothingScheduleType
const RescaleScheduleType & GetRescaleSchedule(void) const
MultiResolutionPyramidImageFilter< TInputImage, TOutputImage > Superclass
virtual void SetComputeOnlyForCurrentLevel(const bool _arg)
GenericMultiResolutionPyramidImageFilter()
bool AreRescaleFactorsAllOnes(const RescaleFactorArrayType &rescaleFactorArray) const
bool IsSmoothingUsed(void) const
GenericMultiResolutionPyramidImageFilter(const Self &)
virtual void SetSmoothingSchedule(const SmoothingScheduleType &schedule)
NumericTraits< PixelType >::ScalarRealType ScalarRealType
bool m_ComputeOnlyForCurrentLevel
void GenerateData(void) override
virtual void SetRescaleSchedule(const RescaleScheduleType &schedule)
SmartPointer< Self > Pointer
Superclass::InputImageType InputImageType
bool ComputeForCurrentLevel(const unsigned int level) const
double GetDefaultSigma(const unsigned int level, const unsigned int dim, const unsigned int *factors, const SpacingType &spacing) const
void GetShrinkFactors(const unsigned int level, RescaleFactorArrayType &shrinkFactors) const
ImageToImageFilter< OutputImageType, OutputImageType > ImageToImageFilterSameTypes
int SetupShrinkerOrResampler(const unsigned int level, typename SmootherType::Pointer &smoother, const bool sameType, const InputImageConstPointer &input, const OutputImagePointer &outputPtr, typename ImageToImageFilterSameTypes::Pointer &rescaleSameTypes, typename ImageToImageFilterDifferentTypes::Pointer &rescaleDifferentTypes)
Superclass::ScheduleType ScheduleType
~GenericMultiResolutionPyramidImageFilter() override
itkStaticConstMacro(ImageDimension, unsigned int, TInputImage::ImageDimension)
SmoothingScheduleType m_SmoothingSchedule
virtual void SetCurrentLevel(unsigned int level)
GenericMultiResolutionPyramidImageFilter Self
virtual void SetSmoothingScheduleToZero(void)
void SetSmoothingScheduleToDefault(void)
Superclass::Superclass SuperSuperclass
Superclass::InputImagePointer InputImagePointer
Superclass::OutputImagePointer OutputImagePointer
Superclass::OutputImageType OutputImageType
void GenerateOutputInformation(void) override
SmoothingRecursiveGaussianImageFilter< InputImageType, OutputImageType > SmootherType
void GenerateOutputRequestedRegion(DataObject *output) override
bool IsRescaleUsed(void) const
virtual void SetRescaleScheduleToUnity(void)
unsigned int m_CurrentLevel
itkStaticConstMacro(OutputImageDimension, unsigned int, TOutputImage::ImageDimension)
Superclass::InputImageConstPointer InputImageConstPointer
Superclass::InputImageType::SpacingType SpacingType
void GetSigma(const unsigned int level, SigmaArrayType &sigmaArray) const
void SetSchedule(const ScheduleType &schedule) override
FixedArray< ScalarRealType, itkGetStaticConstMacro(ImageDimension) > SigmaArrayType
bool AreSigmasAllZeros(const SigmaArrayType &sigmaArray) const
ScheduleType RescaleScheduleType
void ReleaseOutputs(void)
bool SetupSmoother(const unsigned int level, typename SmootherType::Pointer &smoother, const InputImageConstPointer &input)
bool m_SmoothingScheduleDefined
void DefineShrinkerOrResampler(const bool sameType, const RescaleFactorArrayType &shrinkFactors, const OutputImagePointer &outputPtr, typename ImageToImageFilterSameTypes::Pointer &rescaleSameTypes, typename ImageToImageFilterDifferentTypes::Pointer &rescaleDifferentTypes)
void PrintSelf(std::ostream &os, Indent indent) const override
SigmaArrayType RescaleFactorArrayType
void SetNumberOfLevels(unsigned int num) override
void GenerateInputRequestedRegion(void) override