14 #ifndef __itkGenericMultiResolutionPyramidImageFilter_h
15 #define __itkGenericMultiResolutionPyramidImageFilter_h
17 #include "itkMultiResolutionPyramidImageFilter.h"
104 template <
class TInputImage,
class TOutputImage>
106 public MultiResolutionPyramidImageFilter< TInputImage, TOutputImage >
111 typedef MultiResolutionPyramidImageFilter<
122 MultiResolutionPyramidImageFilter );
125 itkStaticConstMacro( ImageDimension,
unsigned int,
126 TInputImage::ImageDimension );
127 itkStaticConstMacro( OutputImageDimension,
unsigned int,
128 TOutputImage::ImageDimension );
137 typedef typename Superclass::InputImageType::SpacingType
SpacingType;
157 virtual void SetSchedule(
const ScheduleType & schedule );
171 return this->m_Schedule;
178 virtual void SetSmoothingSchedule(
const SmoothingScheduleType & schedule );
181 itkGetConstReferenceMacro( SmoothingSchedule, SmoothingScheduleType );
186 virtual void SetNumberOfLevels(
unsigned int num );
191 virtual void SetCurrentLevel(
unsigned int level );
194 itkGetConstReferenceMacro( CurrentLevel,
unsigned int );
197 virtual void SetComputeOnlyForCurrentLevel(
const bool _arg );
198 itkGetConstMacro( ComputeOnlyForCurrentLevel,
bool );
199 itkBooleanMacro( ComputeOnlyForCurrentLevel );
206 itkSetMacro( UseMultiResolutionRescaleSchedule,
bool );
207 itkGetConstMacro( UseMultiResolutionRescaleSchedule,
bool );
208 itkBooleanMacro( UseMultiResolutionRescaleSchedule );
214 itkSetMacro( UseMultiResolutionSmoothingSchedule,
bool );
215 itkGetConstMacro( UseMultiResolutionSmoothingSchedule,
bool );
216 itkBooleanMacro( UseMultiResolutionSmoothingSchedule );
218 #ifdef ITK_USE_CONCEPT_CHECKING
220 itkConceptMacro(SameDimensionCheck,
221 (Concept::SameDimension<ImageDimension, OutputImageDimension>));
222 itkConceptMacro(OutputHasNumericTraitsCheck,
223 (Concept::HasNumericTraits<typename TOutputImage::PixelType>));
230 void PrintSelf( std::ostream & os, Indent indent )
const;
239 virtual void GenerateOutputInformation(
void );
246 virtual void GenerateOutputRequestedRegion( DataObject * output );
249 virtual void GenerateInputRequestedRegion(
void );
252 virtual void GenerateData(
void );
255 void ReleaseOutputs(
void );
267 void SetSmoothingScheduleToDefault(
void );
272 bool ComputeForCurrentLevel(
const unsigned int level )
const;
275 double GetDefaultSigma(
const unsigned int dim,
276 const unsigned int * factors,
284 bool AreSigmasAllZeros(
const SigmaArrayType & sigmaArray )
const;
294 bool IsCasterNeeded(
void )
const;
298 void operator=(
const Self&);
303 #ifndef ITK_MANUAL_INSTANTIATION
304 #include "itkGenericMultiResolutionPyramidImageFilter.hxx"
bool m_SmoothingScheduleDefined
unsigned int m_CurrentLevel
SmartPointer< Self > Pointer
ScheduleType RescaleScheduleType
Superclass::ScheduleType ScheduleType
FixedArray< ScalarRealType, itkGetStaticConstMacro(ImageDimension) > SigmaArrayType
Superclass::OutputImagePointer OutputImagePointer
SigmaArrayType RescaleFactorArrayType
SmoothingScheduleType m_SmoothingSchedule
~GenericMultiResolutionPyramidImageFilter()
GenericMultiResolutionPyramidImageFilter Self
Superclass::Superclass SuperSuperclass
Framework for creating images in a multi-resolution pyramid.
InputImageType::PixelType PixelType
Superclass::InputImageConstPointer InputImageConstPointer
bool m_UseMultiResolutionRescaleSchedule
bool m_ComputeOnlyForCurrentLevel
MultiResolutionPyramidImageFilter< TInputImage, TOutputImage > Superclass
NumericTraits< PixelType >::ScalarRealType ScalarRealType
bool m_UseMultiResolutionSmoothingSchedule
SmartPointer< const Self > ConstPointer
Superclass::InputImagePointer InputImagePointer
Superclass::InputImageType InputImageType
Array2D< ScalarRealType > SmoothingScheduleType
Superclass::InputImageType::SpacingType SpacingType
Superclass::OutputImageType OutputImageType
const RescaleScheduleType & GetRescaleSchedule(void) const