18 #ifndef __itkGenericMultiResolutionPyramidImageFilter_h 19 #define __itkGenericMultiResolutionPyramidImageFilter_h 21 #include "itkMultiResolutionPyramidImageFilter.h" 22 #include "itkSmoothingRecursiveGaussianImageFilter.h" 116 template<
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;
170 virtual void SetSchedule(
const ScheduleType & schedule );
187 return this->m_Schedule;
201 itkGetConstReferenceMacro( SmoothingSchedule, SmoothingScheduleType );
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;
275 typedef SmoothingRecursiveGaussianImageFilter<
282 typedef ImageToImageFilter< OutputImageType, OutputImageType >
284 typedef ImageToImageFilter< InputImageType, OutputImageType >
291 typename SmootherType::Pointer & smoother,
292 const InputImageConstPointer & input );
298 typename SmootherType::Pointer & smoother,
300 const InputImageConstPointer & input,
301 const OutputImagePointer & outputPtr,
302 typename ImageToImageFilterSameTypes::Pointer & rescaleSameTypes,
303 typename ImageToImageFilterDifferentTypes::Pointer & rescaleDifferentTypes );
308 const RescaleFactorArrayType & shrinkFactors,
309 const OutputImagePointer & outputPtr,
310 typename ImageToImageFilterSameTypes::Pointer & rescaleSameTypes,
311 typename ImageToImageFilterDifferentTypes::Pointer & rescaleDifferentTypes );
323 const unsigned int dim,
324 const unsigned int * factors,
325 const SpacingType & spacing )
const;
328 void GetSigma(
const unsigned int level,
333 RescaleFactorArrayType & shrinkFactors )
const;
360 #ifndef ITK_MANUAL_INSTANTIATION 361 #include "itkGenericMultiResolutionPyramidImageFilter.hxx" virtual void SetSchedule(const ScheduleType &schedule)
Superclass::InputImageType::SpacingType SpacingType
Array2D< ScalarRealType > SmoothingScheduleType
SmartPointer< const Self > ConstPointer
void GetSigma(const unsigned int level, SigmaArrayType &sigmaArray) const
InputImageType::PixelType PixelType
bool IsSmoothingUsed(void) const
virtual void GenerateData(void)
bool SetupSmoother(const unsigned int level, typename SmootherType::Pointer &smoother, const InputImageConstPointer &input)
bool AreSigmasAllZeros(const SigmaArrayType &sigmaArray) const
Superclass::InputImageType InputImageType
virtual void GenerateOutputInformation(void)
NumericTraits< PixelType >::ScalarRealType ScalarRealType
Superclass::InputImagePointer InputImagePointer
Superclass::Superclass SuperSuperclass
Superclass::ScheduleType ScheduleType
virtual void SetSmoothingScheduleToZero(void)
Framework for creating images in a multi-resolution pyramid.
virtual void GenerateOutputRequestedRegion(DataObject *output)
SmoothingRecursiveGaussianImageFilter< InputImageType, OutputImageType > SmootherType
bool ComputeForCurrentLevel(const unsigned int level) const
Superclass::OutputImageType OutputImageType
void operator=(const Self &)
virtual void SetSmoothingSchedule(const SmoothingScheduleType &schedule)
itkStaticConstMacro(ImageDimension, unsigned int, TInputImage::ImageDimension)
bool AreRescaleFactorsAllOnes(const RescaleFactorArrayType &rescaleFactorArray) const
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)
SmoothingScheduleType m_SmoothingSchedule
void DefineShrinkerOrResampler(const bool sameType, const RescaleFactorArrayType &shrinkFactors, const OutputImagePointer &outputPtr, typename ImageToImageFilterSameTypes::Pointer &rescaleSameTypes, typename ImageToImageFilterDifferentTypes::Pointer &rescaleDifferentTypes)
virtual void SetCurrentLevel(unsigned int level)
double GetDefaultSigma(const unsigned int level, const unsigned int dim, const unsigned int *factors, const SpacingType &spacing) const
ImageToImageFilter< OutputImageType, OutputImageType > ImageToImageFilterSameTypes
virtual void SetRescaleScheduleToUnity(void)
void ReleaseOutputs(void)
virtual void SetComputeOnlyForCurrentLevel(const bool _arg)
~GenericMultiResolutionPyramidImageFilter()
SmartPointer< Self > Pointer
const RescaleScheduleType & GetRescaleSchedule(void) const
bool m_ComputeOnlyForCurrentLevel
bool IsRescaleUsed(void) const
SigmaArrayType RescaleFactorArrayType
void GetShrinkFactors(const unsigned int level, RescaleFactorArrayType &shrinkFactors) const
unsigned int m_CurrentLevel
void PrintSelf(std::ostream &os, Indent indent) const
virtual void SetRescaleSchedule(const RescaleScheduleType &schedule)
ImageToImageFilter< InputImageType, OutputImageType > ImageToImageFilterDifferentTypes
bool m_SmoothingScheduleDefined
MultiResolutionPyramidImageFilter< TInputImage, TOutputImage > Superclass
Superclass::OutputImagePointer OutputImagePointer
ScheduleType RescaleScheduleType
Superclass::InputImageConstPointer InputImageConstPointer
virtual void GenerateInputRequestedRegion(void)
virtual void SetNumberOfLevels(unsigned int num)
GenericMultiResolutionPyramidImageFilter()
GenericMultiResolutionPyramidImageFilter Self
void SetSmoothingScheduleToDefault(void)
FixedArray< ScalarRealType, itkGetStaticConstMacro(ImageDimension) > SigmaArrayType