18#ifndef itkFastSymmetricForcesDemonsRegistrationFunction_h
19#define itkFastSymmetricForcesDemonsRegistrationFunction_h
46template <
typename TFixedImage,
typename TMovingImage,
typename TDisplacementField>
72 using IndexType =
typename FixedImageType::IndexType;
73 using SizeType =
typename FixedImageType::SizeType;
92#ifndef ITK_FUTURE_LEGACY_REMOVE
93 using CoordRepType ITK_FUTURE_DEPRECATED(
94 "ITK 6 discourages using `CoordRepType`. Please use `CoordinateType` instead!") =
CoordinateType;
145 global->m_SumOfSquaredDifference = 0.0;
146 global->m_NumberOfPixelsProcessed = 0L;
147 global->m_SumOfSquaredChange = 0;
181 virtual const double &
254#ifndef ITK_MANUAL_INSTANTIATION
255# include "itkFastSymmetricForcesDemonsRegistrationFunction.hxx"
Calculate the derivative by central differencing.
SmartPointer< Self > Pointer
Const version of NeighborhoodIterator, defining iteration of a local N-dimensional neighborhood of pi...
A templated class holding a n-Dimensional covariant vector.
FastSymmetricForcesDemonsRegistrationFunction()
ConstNeighborhoodIterator< FixedImageType > FixedImageNeighborhoodIteratorType
void SetMovingImageInterpolator(InterpolatorType *ptr)
static constexpr unsigned int ImageDimension
CentralDifferenceImageFunction< FixedImageType > GradientCalculatorType
typename InterpolatorType::PointType PointType
FastSymmetricForcesDemonsRegistrationFunction Self
InterpolatorPointer m_MovingImageInterpolator
InterpolateImageFunction< MovingImageType, CoordinateType > InterpolatorType
LinearInterpolateImageFunction< MovingImageType, CoordinateType > DefaultInterpolatorType
PDEDeformableRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField > Superclass
SmartPointer< const Self > ConstPointer
TimeStepType ComputeGlobalTimeStep(void *GlobalData) const override
void InitializeIteration() override
typename MovingGradientCalculatorType::Pointer MovingGradientCalculatorPointer
PixelType ComputeUpdate(const NeighborhoodType &neighborhood, void *globalData, const FloatOffsetType &offset=FloatOffsetType(0.0)) override
typename FixedImageType::SizeType SizeType
CovariantVector< double, Self::ImageDimension > CovariantVectorType
InterpolatorType * GetMovingImageInterpolator()
double m_IntensityDifferenceThreshold
virtual double GetMetric() const
GradientCalculatorPointer m_FixedImageGradientCalculator
SizeValueType m_NumberOfPixelsProcessed
WarpImageFilter< MovingImageType, MovingImageType, DisplacementFieldType > WarperType
void ReleaseGlobalDataPointer(void *GlobalData) const override
double m_SumOfSquaredDifference
typename WarperType::Pointer WarperPointer
WarperPointer m_MovingImageWarper
typename FixedImageType::IndexType IndexType
typename FixedImageType::SpacingType SpacingType
~FastSymmetricForcesDemonsRegistrationFunction() override=default
SmartPointer< Self > Pointer
virtual const double & GetRMSChange() const
typename InterpolatorType::Pointer InterpolatorPointer
void * GetGlobalDataPointer() const override
typename GradientCalculatorType::Pointer GradientCalculatorPointer
virtual double GetIntensityDifferenceThreshold() const
void PrintSelf(std::ostream &os, Indent indent) const override
MovingGradientCalculatorPointer m_WarpedMovingImageGradientCalculator
virtual void SetIntensityDifferenceThreshold(double)
double m_SumOfSquaredChange
std::mutex m_MetricCalculationMutex
CentralDifferenceImageFunction< MovingImageType > MovingGradientCalculatorType
double m_DenominatorThreshold
ConstNeighborhoodIterator< TDisplacementField, DefaultBoundaryConditionType > NeighborhoodType
static constexpr unsigned int ImageDimension
Vector< float, Self::ImageDimension > FloatOffsetType
typename ImageType::PixelType PixelType
typename ConstNeighborhoodIterator< TDisplacementField >::RadiusType RadiusType
Control indentation during Print() invocation.
Base class for all image interpolators.
Point< CoordinateType, Self::ImageDimension > PointType
SmartPointer< Self > Pointer
Linearly interpolate an image at specified positions.
Implements transparent reference counting.
Warps an image using an input displacement field.
SmartPointer< Self > Pointer
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
unsigned long SizeValueType
SizeValueType m_NumberOfPixelsProcessed
double m_SumOfSquaredDifference
double m_SumOfSquaredChange