18#ifndef itkESMDemonsRegistrationFunction_h
19#define itkESMDemonsRegistrationFunction_h
24#include "ITKPDEDeformableRegistrationExport.h"
49extern ITKPDEDeformableRegistration_EXPORT std::ostream &
83template <
typename TFixedImage,
typename TMovingImage,
typename TDisplacementField>
112 using SizeType =
typename FixedImageType::SizeType;
132#ifndef ITK_FUTURE_LEGACY_REMOVE
133 using CoordRepType ITK_FUTURE_DEPRECATED(
134 "ITK 6 discourages using `CoordRepType`. Please use `CoordinateType` instead!") =
CoordinateType;
185 auto * global =
new GlobalDataStruct();
187 global->m_SumOfSquaredDifference = 0.0;
188 global->m_NumberOfPixelsProcessed = 0L;
189 global->m_SumOfSquaredChange = 0;
216 virtual const double &
248#if !defined(ITK_LEGACY_REMOVE)
250 static constexpr GradientEnum Symmetric = GradientEnum::Symmetric;
251 static constexpr GradientEnum Fixed = GradientEnum::Fixed;
252 static constexpr GradientEnum WarpedMoving = GradientEnum::WarpedMoving;
253 static constexpr GradientEnum MappedMoving = GradientEnum::MappedMoving;
336#ifndef ITK_MANUAL_INSTANTIATION
337# include "itkESMDemonsRegistrationFunction.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.
Contains all enum classes used by ESMDemonsRegistrationFunction class.
double m_IntensityDifferenceThreshold
WarpImageFilter< MovingImageType, MovingImageType, DisplacementFieldType > WarperType
virtual double GetMetric() const
double m_MaximumUpdateStepLength
TimeStepType ComputeGlobalTimeStep(void *GlobalData) const override
ESMDemonsRegistrationFunction Self
double m_SumOfSquaredChange
SpacingType m_FixedImageSpacing
DirectionType m_FixedImageDirection
typename MovingImageGradientCalculatorType::Pointer MovingImageGradientCalculatorPointer
~ESMDemonsRegistrationFunction() override=default
MovingImageType * m_MovingImageWarperOutput
static constexpr unsigned int ImageDimension
PointType m_FixedImageOrigin
typename MovingImageType::PixelType MovingPixelType
typename InterpolatorType::Pointer InterpolatorPointer
SmartPointer< const Self > ConstPointer
typename FixedImageType::DirectionType DirectionType
GradientCalculatorPointer m_FixedImageGradientCalculator
virtual double GetIntensityDifferenceThreshold() const
virtual void SetUseGradientType(GradientEnum gtype)
CentralDifferenceImageFunction< MovingImageType, CoordinateType > MovingImageGradientCalculatorType
PDEDeformableRegistrationFunction< FixedImageType, MovingImageType, DisplacementFieldType > Superclass
virtual GradientEnum GetUseGradientType() const
CentralDifferenceImageFunction< FixedImageType > GradientCalculatorType
void ReleaseGlobalDataPointer(void *gd) const override
SmartPointer< Self > Pointer
InterpolatorType * GetMovingImageInterpolator()
void InitializeIteration() override
ESMDemonsRegistrationFunctionEnums::Gradient GradientEnum
ConstNeighborhoodIterator< FixedImageType > FixedImageNeighborhoodIteratorType
virtual void SetMaximumUpdateStepLength(double sm)
typename WarperType::Pointer WarperPointer
typename GradientCalculatorType::Pointer GradientCalculatorPointer
std::mutex m_MetricCalculationMutex
typename InterpolatorType::PointType PointType
InterpolateImageFunction< MovingImageType, CoordinateType > InterpolatorType
MovingImageType MovingImageType
typename FixedImageType::SizeType SizeType
void SetMovingImageInterpolator(InterpolatorType *ptr)
virtual double GetMaximumUpdateStepLength() const
typename FixedImageType::IndexType IndexType
typename FixedImageType::SpacingType SpacingType
InterpolatorPointer m_MovingImageInterpolator
double m_DenominatorThreshold
WarperPointer m_MovingImageWarper
LinearInterpolateImageFunction< MovingImageType, CoordinateType > DefaultInterpolatorType
MovingImageGradientCalculatorPointer m_MappedMovingImageGradientCalculator
void * GetGlobalDataPointer() const override
CovariantVector< double, Self::ImageDimension > CovariantVectorType
SizeValueType m_NumberOfPixelsProcessed
virtual const double & GetRMSChange() const
void PrintSelf(std::ostream &os, Indent indent) const override
GradientEnum m_UseGradientType
virtual void SetIntensityDifferenceThreshold(double)
double m_SumOfSquaredDifference
ESMDemonsRegistrationFunction()
PixelType ComputeUpdate(const NeighborhoodType &it, void *gd, const FloatOffsetType &offset=FloatOffsetType(0.0)) override
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.
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
ITKCommon_EXPORT std::ostream & operator<<(std::ostream &out, typename AnatomicalOrientation::CoordinateEnum value)
SizeValueType m_NumberOfPixelsProcessed
double m_SumOfSquaredChange
double m_SumOfSquaredDifference