18 #ifndef itkESMDemonsRegistrationFunction_h
19 #define itkESMDemonsRegistrationFunction_h
59 template<
typename TFixedImage,
typename TMovingImage,
typename TDisplacementField >
62 TMovingImage, TDisplacementField >
69 TFixedImage, TMovingImage, TDisplacementField >
Superclass;
96 typedef typename Superclass::DisplacementFieldTypePointer
100 itkStaticConstMacro(ImageDimension,
unsigned int, Superclass::ImageDimension);
140 { m_MovingImageInterpolator = ptr; m_MovingImageWarper->SetInterpolator(ptr); }
144 {
return m_MovingImageInterpolator; }
148 {
return m_TimeStep; }
163 virtual void ReleaseGlobalDataPointer(
void *GlobalData)
const ITK_OVERRIDE;
166 virtual void InitializeIteration() ITK_OVERRIDE;
170 virtual PixelType ComputeUpdate( const NeighborhoodType & neighborhood,
172 const FloatOffsetType & offset = FloatOffsetType(0.0) ) ITK_OVERRIDE;
177 virtual
double GetMetric()
const
182 {
return m_RMSChange; }
188 virtual void SetIntensityDifferenceThreshold(
double);
190 virtual double GetIntensityDifferenceThreshold()
const;
197 this->m_MaximumUpdateStepLength = sm;
202 return this->m_MaximumUpdateStepLength;
215 { m_UseGradientType = gtype; }
217 {
return m_UseGradientType; }
223 void PrintSelf(std::ostream & os,
Indent indent)
const ITK_OVERRIDE;
287 #ifndef ITK_MANUAL_INSTANTIATION
288 #include "itkESMDemonsRegistrationFunction.hxx"
void SetMovingImageInterpolator(InterpolatorType *ptr)
Critical section locking class that can be allocated on the stack.
ConstNeighborhoodIterator< FixedImageType > FixedImageNeighborhoodIteratorType
virtual GradientType GetUseGradientType() const
Light weight base class for most itk classes.
CentralDifferenceImageFunction< FixedImageType > GradientCalculatorType
double m_SumOfSquaredChange
Superclass::MovingImagePointer MovingImagePointer
Superclass::NeighborhoodType NeighborhoodType
SmartPointer< const Self > ConstPointer
SizeValueType m_NumberOfPixelsProcessed
virtual TimeStepType ComputeGlobalTimeStep(void *) const override
WarperPointer m_MovingImageWarper
double m_DenominatorThreshold
Superclass::PixelType PixelType
double m_MaximumUpdateStepLength
LinearInterpolateImageFunction< MovingImageType, CoordRepType > DefaultInterpolatorType
virtual const double & GetRMSChange() const
ConstNeighborhoodIterator< TDisplacementField >::RadiusType RadiusType
virtual void SetUseGradientType(GradientType gtype)
MovingImageType::PixelType MovingPixelType
InterpolatorPointer m_MovingImageInterpolator
Calculate the derivative by central differencing.
WarperType::Pointer WarperPointer
SmartPointer< Self > Pointer
FixedImageType::SizeType SizeType
CentralDifferenceImageFunction< MovingImageType, CoordRepType > MovingImageGradientCalculatorType
Superclass::MovingImageType MovingImageType
Const version of NeighborhoodIterator, defining iteration of a local N-dimensional neighborhood of pi...
unsigned long SizeValueType
FixedImageType::DirectionType DirectionType
FixedImageType::SpacingType SpacingType
Superclass::FixedImagePointer FixedImagePointer
ImageBaseType::DirectionType DirectionType
ESMDemonsRegistrationFunction Self
DirectionType m_FixedImageDirection
double m_SumOfSquaredChange
Superclass::FixedImageType FixedImageType
A templated class holding a n-Dimensional vector.
SimpleFastMutexLock m_MetricCalculationLock
Superclass::PointType PointType
virtual void SetMaximumUpdateStepLength(double sm)
MovingImageGradientCalculatorPointer m_MappedMovingImageGradientCalculator
double m_IntensityDifferenceThreshold
Superclass::RadiusType RadiusType
Superclass::FloatOffsetType FloatOffsetType
ImageType::PixelType PixelType
Warps an image using an input displacement field.
GradientType m_UseGradientType
Linearly interpolate an image at specified positions.
PDEDeformableRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField > Superclass
Base class for all image interpolaters.
SpacingType m_FixedImageSpacing
FixedImageType::IndexType IndexType
InterpolateImageFunction< MovingImageType, CoordRepType > InterpolatorType
PointType m_FixedImageOrigin
Superclass::TimeStepType TimeStepType
virtual void * GetGlobalDataPointer() const override
SizeValueType m_NumberOfPixelsProcessed
double m_SumOfSquaredDifference
InterpolatorType * GetMovingImageInterpolator(void)
InterpolatorType::Pointer InterpolatorPointer
Superclass::DisplacementFieldTypePointer DisplacementFieldTypePointer
Control indentation during Print() invocation.
GradientCalculatorPointer m_FixedImageGradientCalculator
WarpImageFilter< MovingImageType, MovingImageType, DisplacementFieldType > WarperType
ImageBaseType::SizeType SizeType
double m_SumOfSquaredDifference
Superclass::DisplacementFieldType DisplacementFieldType
MovingImageType * m_MovingImageWarperOutput
A templated class holding a n-Dimensional covariant vector.
MovingImageGradientCalculatorType::Pointer MovingImageGradientCalculatorPointer
~ESMDemonsRegistrationFunction() override
virtual double GetMaximumUpdateStepLength() const
Fast implementation of the symmetric demons registration force.
GradientCalculatorType::Pointer GradientCalculatorPointer
InterpolatorType::PointType PointType
CovariantVector< double, itkGetStaticConstMacro(ImageDimension) > CovariantVectorType
ImageBaseType::IndexType IndexType