18#ifndef itkDemonsRegistrationFunction_h
19#define itkDemonsRegistrationFunction_h
53template <
typename TFixedImage,
typename TMovingImage,
typename TDisplacementField>
79 using IndexType =
typename FixedImageType::IndexType;
80 using SizeType =
typename FixedImageType::SizeType;
99#ifndef ITK_FUTURE_LEGACY_REMOVE
100 using CoordRepType ITK_FUTURE_DEPRECATED(
101 "ITK 6 discourages using `CoordRepType`. Please use `CoordinateType` instead!") =
CoordinateType;
145 auto * global =
new GlobalDataStruct();
147 global->m_SumOfSquaredDifference = 0.0;
148 global->m_NumberOfPixelsProcessed = 0L;
149 global->m_SumOfSquaredChange = 0;
270#ifndef ITK_MANUAL_INSTANTIATION
271# include "itkDemonsRegistrationFunction.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.
ConstNeighborhoodIterator< FixedImageType > FixedImageNeighborhoodIteratorType
void * GetGlobalDataPointer() const override
InterpolateImageFunction< MovingImageType, CoordinateType > InterpolatorType
typename GradientCalculatorType::Pointer GradientCalculatorPointer
double m_SumOfSquaredChange
double m_SumOfSquaredDifference
~DemonsRegistrationFunction() override=default
typename MovingImageGradientCalculatorType::Pointer MovingImageGradientCalculatorPointer
DemonsRegistrationFunction()
void ReleaseGlobalDataPointer(void *gd) const override
LinearInterpolateImageFunction< MovingImageType, CoordinateType > DefaultInterpolatorType
CovariantVector< double, Self::ImageDimension > CovariantVectorType
void InitializeIteration() override
SmartPointer< const Self > ConstPointer
MovingImageGradientCalculatorPointer m_MovingImageGradientCalculator
typename FixedImageType::SizeType SizeType
CentralDifferenceImageFunction< MovingImageType, CoordinateType > MovingImageGradientCalculatorType
PixelType ComputeUpdate(const NeighborhoodType &it, void *gd, const FloatOffsetType &offset=FloatOffsetType(0.0)) override
static constexpr unsigned int ImageDimension
typename InterpolatorType::PointType PointType
DemonsRegistrationFunction Self
typename InterpolatorType::Pointer InterpolatorPointer
virtual bool GetUseMovingImageGradient() const
SmartPointer< Self > Pointer
virtual double GetMetric() const
CentralDifferenceImageFunction< FixedImageType > GradientCalculatorType
void PrintSelf(std::ostream &os, Indent indent) const override
PixelType m_ZeroUpdateReturn
double m_IntensityDifferenceThreshold
bool m_UseMovingImageGradient
InterpolatorPointer m_MovingImageInterpolator
SizeValueType m_NumberOfPixelsProcessed
double m_DenominatorThreshold
GradientCalculatorPointer m_FixedImageGradientCalculator
std::mutex m_MetricCalculationMutex
virtual void SetUseMovingImageGradient(bool flag)
typename FixedImageType::SpacingType SpacingType
void SetMovingImageInterpolator(InterpolatorType *ptr)
PDEDeformableRegistrationFunction< FixedImageType, MovingImageType, DisplacementFieldType > Superclass
TimeStepType ComputeGlobalTimeStep(void *GlobalData) const override
InterpolatorType * GetMovingImageInterpolator()
virtual double GetRMSChange() const
virtual double GetIntensityDifferenceThreshold() const
typename FixedImageType::IndexType IndexType
virtual void SetIntensityDifferenceThreshold(double)
ConstNeighborhoodIterator< TImageType, DefaultBoundaryConditionType > NeighborhoodType
static constexpr unsigned int ImageDimension
Vector< float, Self::ImageDimension > FloatOffsetType
typename ImageType::PixelType PixelType
typename ConstNeighborhoodIterator< TImageType >::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.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
unsigned long SizeValueType
double m_SumOfSquaredDifference
SizeValueType m_NumberOfPixelsProcessed
double m_SumOfSquaredChange