18 #ifndef itkLevelSetMotionRegistrationFunction_h
19 #define itkLevelSetMotionRegistrationFunction_h
54 template <
typename TFixedImage,
typename TMovingImage,
typename TDisplacementField>
75 using typename Superclass::MovingImageType;
76 using typename Superclass::MovingImagePointer;
80 using typename Superclass::FixedImageType;
81 using typename Superclass::FixedImagePointer;
87 using typename Superclass::DisplacementFieldType;
88 using typename Superclass::DisplacementFieldTypePointer;
91 static constexpr
unsigned int ImageDimension = Superclass::ImageDimension;
102 #ifndef ITK_FUTURE_LEGACY_REMOVE
103 using CoordRepType ITK_FUTURE_DEPRECATED(
104 "ITK 6 discourages using `CoordRepType`. Please use `CoordinateType` instead!") =
CoordinateType;
123 m_MovingImageInterpolator = ptr;
130 return m_MovingImageInterpolator;
138 ComputeGlobalTimeStep(
void * GlobalData)
const override;
147 global->m_SumOfSquaredDifference = 0.0;
148 global->m_NumberOfPixelsProcessed = 0L;
149 global->m_SumOfSquaredChange = 0;
159 ReleaseGlobalDataPointer(
void * gd)
const override;
163 InitializeIteration()
override;
170 ComputeUpdate(
const NeighborhoodType & it,
void * gd,
const FloatOffsetType & offset = FloatOffsetType(0.0))
override;
205 SetIntensityDifferenceThreshold(
double);
208 GetIntensityDifferenceThreshold()
const;
213 SetGradientMagnitudeThreshold(
double);
216 GetGradientMagnitudeThreshold()
const;
221 SetGradientSmoothingStandardDeviations(
double);
224 GetGradientSmoothingStandardDeviations()
const;
230 SetUseImageSpacing(
bool);
233 GetUseImageSpacing()
const;
239 PrintSelf(std::ostream & os,
Indent indent)
const override;
271 double m_GradientMagnitudeThreshold{};
274 double m_IntensityDifferenceThreshold{};
277 double m_GradientSmoothingStandardDeviations{};
282 mutable double m_Metric{};
283 mutable double m_SumOfSquaredDifference{};
285 mutable double m_RMSChange{};
286 mutable double m_SumOfSquaredChange{};
289 mutable std::mutex m_MetricCalculationMutex{};
291 bool m_UseImageSpacing{
true };
295 #ifndef ITK_MANUAL_INSTANTIATION
296 # include "itkLevelSetMotionRegistrationFunction.hxx"