18 #ifndef itkSymmetricForcesDemonsRegistrationFunction_h
19 #define itkSymmetricForcesDemonsRegistrationFunction_h
61 template<
typename TFixedImage,
typename TMovingImage,
typename TDisplacementField >
64 TMovingImage, TDisplacementField >
72 TMovingImage, TDisplacementField >;
99 static constexpr
unsigned int ImageDimension = Superclass::ImageDimension;
124 { m_MovingImageInterpolator = ptr; }
128 {
return m_MovingImageInterpolator; }
132 {
return m_TimeStep; }
140 global->m_SumOfSquaredDifference = 0.0;
141 global->m_NumberOfPixelsProcessed = 0L;
142 global->m_SumOfSquaredChange = 0;
147 void ReleaseGlobalDataPointer(
void *GlobalData)
const override;
150 void InitializeIteration()
override;
154 PixelType ComputeUpdate(
const NeighborhoodType & neighborhood,
156 const FloatOffsetType & offset = FloatOffsetType(0.0) )
override;
166 {
return m_RMSChange; }
172 virtual void SetIntensityDifferenceThreshold(
double);
174 virtual double GetIntensityDifferenceThreshold()
const;
179 void PrintSelf(std::ostream & os,
Indent indent)
const override;
227 #ifndef ITK_MANUAL_INSTANTIATION
228 #include "itkSymmetricForcesDemonsRegistrationFunction.hxx"
typename InterpolatorType::PointType PointType
typename FixedImageType::IndexType IndexType
Light weight base class for most itk classes.
virtual const double & GetRMSChange() const
std::mutex m_MetricCalculationLock
unsigned long SizeValueType
void SetMovingImageInterpolator(InterpolatorType *ptr)
double m_SumOfSquaredChange
void * GetGlobalDataPointer() const override
Calculate the derivative by central differencing.
PointType m_FixedImageOrigin
InterpolatorType * GetMovingImageInterpolator()
Const version of NeighborhoodIterator, defining iteration of a local N-dimensional neighborhood of pi...
typename GradientCalculatorType::Pointer GradientCalculatorPointer
typename InterpolatorType::Pointer InterpolatorPointer
typename ImageType::PixelType PixelType
typename FixedImageType::SizeType SizeType
typename ConstNeighborhoodIterator< TDisplacementField >::RadiusType RadiusType
A templated class holding a n-Dimensional vector.
typename FixedImageType::SpacingType SpacingType
ImageBaseType::SizeType SizeType
double m_SumOfSquaredDifference
typename Superclass::NeighborhoodType NeighborhoodType
GradientCalculatorPointer m_FixedImageGradientCalculator
ImageBaseType::IndexType IndexType
typename Superclass::FloatOffsetType FloatOffsetType
double m_SumOfSquaredDifference
SpacingType m_FixedImageSpacing
TimeStepType ComputeGlobalTimeStep(void *) const override
InterpolatorPointer m_MovingImageInterpolator
Linearly interpolate an image at specified positions.
typename Superclass::TimeStepType TimeStepType
SizeValueType m_NumberOfPixelsProcessed
Base class for all image interpolaters.
typename Superclass::PixelType PixelType
SizeValueType m_NumberOfPixelsProcessed
Control indentation during Print() invocation.
ImageBaseType::PointType PointType
virtual double GetMetric() const
double m_SumOfSquaredChange
double m_DenominatorThreshold
typename Superclass::RadiusType RadiusType
A templated class holding a n-Dimensional covariant vector.
double m_IntensityDifferenceThreshold