18 #ifndef itkESMDemonsRegistrationFunction_h
19 #define itkESMDemonsRegistrationFunction_h
60 template<
typename TFixedImage,
typename TMovingImage,
typename TDisplacementField >
63 TMovingImage, TDisplacementField >
71 TFixedImage, TMovingImage, TDisplacementField >;
101 static constexpr
unsigned int ImageDimension = Superclass::ImageDimension;
140 { m_MovingImageInterpolator = ptr; m_MovingImageWarper->SetInterpolator(ptr); }
144 {
return m_MovingImageInterpolator; }
148 {
return m_TimeStep; }
156 global->m_SumOfSquaredDifference = 0.0;
157 global->m_NumberOfPixelsProcessed = 0L;
158 global->m_SumOfSquaredChange = 0;
163 void ReleaseGlobalDataPointer(
void *GlobalData)
const override;
166 void InitializeIteration()
override;
170 PixelType ComputeUpdate(
const NeighborhoodType & neighborhood,
172 const FloatOffsetType & offset = FloatOffsetType(0.0) )
override;
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 override;
285 #ifndef ITK_MANUAL_INSTANTIATION
286 #include "itkESMDemonsRegistrationFunction.hxx"
void SetMovingImageInterpolator(InterpolatorType *ptr)
InterpolatorType * GetMovingImageInterpolator()
typename FixedImageType::DirectionType DirectionType
void * GetGlobalDataPointer() const override
typename MovingImageType::PixelType MovingPixelType
virtual GradientType GetUseGradientType() const
Light weight base class for most itk classes.
typename Superclass::PixelType PixelType
double m_SumOfSquaredChange
typename Superclass::FloatOffsetType FloatOffsetType
SizeValueType m_NumberOfPixelsProcessed
WarperPointer m_MovingImageWarper
unsigned long SizeValueType
double m_DenominatorThreshold
double m_MaximumUpdateStepLength
typename FixedImageType::SizeType SizeType
virtual const double & GetRMSChange() const
typename FixedImageType::SpacingType SpacingType
virtual void SetUseGradientType(GradientType gtype)
InterpolatorPointer m_MovingImageInterpolator
Calculate the derivative by central differencing.
Const version of NeighborhoodIterator, defining iteration of a local N-dimensional neighborhood of pi...
typename ImageType::PixelType PixelType
DirectionType m_FixedImageDirection
double m_SumOfSquaredChange
TimeStepType ComputeGlobalTimeStep(void *) const override
typename ConstNeighborhoodIterator< TDisplacementField >::RadiusType RadiusType
A templated class holding a n-Dimensional vector.
ImageBaseType::SizeType SizeType
typename InterpolatorType::PointType PointType
ImageBaseType::DirectionType DirectionType
ImageBaseType::IndexType IndexType
typename WarperType::Pointer WarperPointer
virtual void SetMaximumUpdateStepLength(double sm)
MovingImageGradientCalculatorPointer m_MappedMovingImageGradientCalculator
double m_IntensityDifferenceThreshold
typename MovingImageGradientCalculatorType::Pointer MovingImageGradientCalculatorPointer
typename Superclass::NeighborhoodType NeighborhoodType
typename Superclass::TimeStepType TimeStepType
Warps an image using an input displacement field.
GradientType m_UseGradientType
Linearly interpolate an image at specified positions.
typename Superclass::RadiusType RadiusType
Base class for all image interpolaters.
SpacingType m_FixedImageSpacing
std::mutex m_MetricCalculationLock
typename Superclass::MovingImageType MovingImageType
PointType m_FixedImageOrigin
SizeValueType m_NumberOfPixelsProcessed
double m_SumOfSquaredDifference
typename InterpolatorType::Pointer InterpolatorPointer
Control indentation during Print() invocation.
GradientCalculatorPointer m_FixedImageGradientCalculator
ImageBaseType::PointType PointType
double m_SumOfSquaredDifference
virtual double GetMetric() const
MovingImageType * m_MovingImageWarperOutput
A templated class holding a n-Dimensional covariant vector.
virtual double GetMaximumUpdateStepLength() const
Fast implementation of the symmetric demons registration force.
typename GradientCalculatorType::Pointer GradientCalculatorPointer
typename FixedImageType::IndexType IndexType