18 #ifndef itkFastSymmetricForcesDemonsRegistrationFunction_h
19 #define itkFastSymmetricForcesDemonsRegistrationFunction_h
46 template<
typename TFixedImage,
typename TMovingImage,
typename TDisplacementField >
49 TMovingImage, TDisplacementField >
57 TMovingImage, TDisplacementField >;
84 static constexpr
unsigned int ImageDimension = Superclass::ImageDimension;
117 m_MovingImageInterpolator = ptr; m_MovingImageWarper->SetInterpolator(ptr);
123 return m_MovingImageInterpolator;
138 global->m_SumOfSquaredDifference = 0.0;
139 global->m_NumberOfPixelsProcessed = 0L;
140 global->m_SumOfSquaredChange = 0;
145 void ReleaseGlobalDataPointer(
void *GlobalData)
const override;
148 void InitializeIteration()
override;
152 PixelType ComputeUpdate(
const NeighborhoodType & neighborhood,
154 const FloatOffsetType & offset = FloatOffsetType(0.0) )
override;
174 virtual void SetIntensityDifferenceThreshold(
double);
176 virtual double GetIntensityDifferenceThreshold()
const;
181 void PrintSelf(std::ostream & os,
Indent indent)
const override;
233 #ifndef ITK_MANUAL_INSTANTIATION
234 #include "itkFastSymmetricForcesDemonsRegistrationFunction.hxx"
typename Superclass::NeighborhoodType NeighborhoodType
void * GetGlobalDataPointer() const override
void SetMovingImageInterpolator(InterpolatorType *ptr)
virtual const double & GetRMSChange() const
SizeValueType m_NumberOfPixelsProcessed
Light weight base class for most itk classes.
virtual double GetMetric() const
double m_SumOfSquaredDifference
typename FixedImageType::IndexType IndexType
unsigned long SizeValueType
typename GradientCalculatorType::Pointer GradientCalculatorPointer
InterpolatorPointer m_MovingImageInterpolator
WarperPointer m_MovingImageWarper
typename InterpolatorType::PointType PointType
Calculate the derivative by central differencing.
Const version of NeighborhoodIterator, defining iteration of a local N-dimensional neighborhood of pi...
typename MovingGradientCalculatorType::Pointer MovingGradientCalculatorPointer
typename InterpolatorType::Pointer InterpolatorPointer
typename ImageType::PixelType PixelType
typename Superclass::TimeStepType TimeStepType
typename FixedImageType::SpacingType SpacingType
typename ConstNeighborhoodIterator< TDisplacementField >::RadiusType RadiusType
A templated class holding a n-Dimensional vector.
ImageBaseType::SizeType SizeType
InterpolatorType * GetMovingImageInterpolator()
MovingGradientCalculatorPointer m_WarpedMovingImageGradientCalculator
ImageBaseType::IndexType IndexType
GradientCalculatorPointer m_FixedImageGradientCalculator
Warps an image using an input displacement field.
Linearly interpolate an image at specified positions.
double m_SumOfSquaredChange
Base class for all image interpolaters.
typename WarperType::Pointer WarperPointer
double m_SumOfSquaredDifference
SizeValueType m_NumberOfPixelsProcessed
Control indentation during Print() invocation.
ImageBaseType::PointType PointType
std::mutex m_MetricCalculationLock
TimeStepType ComputeGlobalTimeStep(void *) const override
typename Superclass::PixelType PixelType
typename Superclass::RadiusType RadiusType
typename Superclass::FloatOffsetType FloatOffsetType
A templated class holding a n-Dimensional covariant vector.
double m_DenominatorThreshold
typename FixedImageType::SizeType SizeType
double m_IntensityDifferenceThreshold
double m_SumOfSquaredChange