18 #ifndef itkPDEDeformableRegistrationFilter_h
19 #define itkPDEDeformableRegistrationFilter_h
72 template <
typename TFixedImage,
typename TMovingImage,
typename TDisplacementField>
106 using typename Superclass::OutputImageType;
109 using typename Superclass::FiniteDifferenceFunctionType;
116 static constexpr
unsigned int ImageDimension = Superclass::ImageDimension;
140 return this->GetOutput();
148 std::vector<SmartPointer<DataObject>>::size_type
149 GetNumberOfValidRequiredInputs()
const override;
156 itkSetMacro(SmoothDisplacementField,
bool);
157 itkGetConstMacro(SmoothDisplacementField,
bool);
158 itkBooleanMacro(SmoothDisplacementField);
168 SetStandardDeviations(
double value);
180 itkSetMacro(SmoothUpdateField,
bool);
181 itkGetConstMacro(SmoothUpdateField,
bool);
182 itkBooleanMacro(SmoothUpdateField);
189 SetUpdateFieldStandardDeviations(
double value);
200 m_StopRegistrationFlag =
true;
205 itkSetMacro(MaximumError,
double);
206 itkGetConstMacro(MaximumError,
double);
211 itkSetMacro(MaximumKernelWidth,
unsigned int);
212 itkGetConstMacro(MaximumKernelWidth,
unsigned int);
219 PrintSelf(std::ostream & os,
Indent indent)
const override;
226 if (m_StopRegistrationFlag)
231 return this->Superclass::Halt();
238 CopyInputToOutput()
override;
243 InitializeIteration()
override;
249 SmoothDisplacementField();
262 PostProcessOutput()
override;
269 Initialize()
override;
276 GenerateOutputInformation()
override;
285 GenerateInputRequestedRegion()
override;
293 bool m_SmoothDisplacementField{};
294 bool m_SmoothUpdateField{};
302 double m_MaximumError{};
305 unsigned int m_MaximumKernelWidth{};
308 bool m_StopRegistrationFlag{};
312 #ifndef ITK_MANUAL_INSTANTIATION
313 # include "itkPDEDeformableRegistrationFilter.hxx"