18 #ifndef itkDemonsRegistrationFunction_h
19 #define itkDemonsRegistrationFunction_h
53 template<
typename TFixedImage,
typename TMovingImage,
typename TDisplacementField >
65 TMovingImage, TDisplacementField >;
92 static constexpr
unsigned int ImageDimension = Superclass::ImageDimension;
122 { m_MovingImageInterpolator = ptr; }
126 {
return m_MovingImageInterpolator; }
130 {
return m_TimeStep; }
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 =
155 FloatOffsetType(0.0) )
override;
165 {
return m_RMSChange; }
171 { m_UseMovingImageGradient = flag; }
173 {
return m_UseMovingImageGradient; }
180 virtual void SetIntensityDifferenceThreshold(
double);
182 virtual double GetIntensityDifferenceThreshold()
const;
187 void PrintSelf(std::ostream & os,
Indent indent)
const override;
240 #ifndef ITK_MANUAL_INSTANTIATION
241 #include "itkDemonsRegistrationFunction.hxx"
void SetMovingImageInterpolator(InterpolatorType *ptr)
typename Superclass::RadiusType RadiusType
typename FixedImageType::IndexType IndexType
typename FixedImageType::SpacingType SpacingType
std::mutex m_MetricCalculationLock
Light weight base class for most itk classes.
virtual double GetRMSChange() const
typename Superclass::NeighborhoodType NeighborhoodType
typename InterpolatorType::Pointer InterpolatorPointer
unsigned long SizeValueType
SizeValueType m_NumberOfPixelsProcessed
MovingImageGradientCalculatorPointer m_MovingImageGradientCalculator
double m_SumOfSquaredDifference
Calculate the derivative by central differencing.
typename MovingImageGradientCalculatorType::Pointer MovingImageGradientCalculatorPointer
Const version of NeighborhoodIterator, defining iteration of a local N-dimensional neighborhood of pi...
InterpolatorType * GetMovingImageInterpolator()
typename Superclass::TimeStepType TimeStepType
SizeValueType m_NumberOfPixelsProcessed
typename ImageType::PixelType PixelType
double m_SumOfSquaredChange
typename GradientCalculatorType::Pointer GradientCalculatorPointer
double m_SumOfSquaredDifference
double m_DenominatorThreshold
typename ConstNeighborhoodIterator< TDisplacementField >::RadiusType RadiusType
typename InterpolatorType::PointType PointType
A templated class holding a n-Dimensional vector.
ImageBaseType::SizeType SizeType
TimeStepType ComputeGlobalTimeStep(void *) const override
ImageBaseType::IndexType IndexType
virtual double GetMetric() const
GradientCalculatorPointer m_FixedImageGradientCalculator
Linearly interpolate an image at specified positions.
virtual void SetUseMovingImageGradient(bool flag)
virtual bool GetUseMovingImageGradient() const
bool m_UseMovingImageGradient
Base class for all image interpolaters.
typename FixedImageType::SizeType SizeType
double m_IntensityDifferenceThreshold
InterpolatorPointer m_MovingImageInterpolator
Control indentation during Print() invocation.
ImageBaseType::PointType PointType
typename Superclass::PixelType PixelType
void * GetGlobalDataPointer() const override
A templated class holding a n-Dimensional covariant vector.
PixelType m_ZeroUpdateReturn
typename Superclass::FloatOffsetType FloatOffsetType
double m_SumOfSquaredChange