18 #ifndef itkDiffeomorphicDemonsRegistrationFilter_h
19 #define itkDiffeomorphicDemonsRegistrationFilter_h
77 template <
typename TFixedImage,
typename TMovingImage,
typename TDisplacementField>
97 using typename Superclass::FixedImageType;
98 using typename Superclass::FixedImagePointer;
101 using typename Superclass::MovingImageType;
102 using typename Superclass::MovingImagePointer;
105 using typename Superclass::DisplacementFieldType;
106 using typename Superclass::DisplacementFieldPointer;
109 using typename Superclass::FiniteDifferenceFunctionType;
119 static constexpr
unsigned int ImageDimension = FixedImageType::ImageDimension;
129 GetRMSChange()
const override;
135 GetUseGradientType()
const;
140 itkSetMacro(UseFirstOrderExp,
bool);
141 itkGetConstMacro(UseFirstOrderExp,
bool);
142 itkBooleanMacro(UseFirstOrderExp);
150 SetIntensityDifferenceThreshold(
double);
153 GetIntensityDifferenceThreshold()
const;
158 SetMaximumUpdateStepLength(
double);
161 GetMaximumUpdateStepLength()
const;
167 PrintSelf(std::ostream & os,
Indent indent)
const override;
171 InitializeIteration()
override;
176 AllocateUpdateBuffer()
override;
189 DownCastDifferenceFunctionType();
192 DownCastDifferenceFunctionType()
const;
218 bool m_UseFirstOrderExp{
false };
222 #ifndef ITK_MANUAL_INSTANTIATION
223 # include "itkDiffeomorphicDemonsRegistrationFilter.hxx"