18 #ifndef itkPDEDeformableRegistrationFilter_h
19 #define itkPDEDeformableRegistrationFilter_h
72 template<
typename TFixedImage,
typename TMovingImage,
typename TDisplacementField >
105 #ifdef ITKV3_COMPATIBILITY
106 typedef TDisplacementField DeformationFieldType;
107 typedef typename DeformationFieldType::Pointer DeformationFieldPointer;
114 typedef typename Superclass::FiniteDifferenceFunctionType
122 itkStaticConstMacro(ImageDimension,
unsigned int,
123 Superclass::ImageDimension);
139 { this->SetInput(ptr); }
143 {
return this->GetOutput(); }
145 #ifdef ITKV3_COMPATIBILITY
146 virtual void SetInitialDeformationField(DeformationFieldType *ptr)
148 this->SetInitialDisplacementField(ptr);
152 DeformationFieldType * GetDeformationField(
void)
154 return static_cast<DeformationFieldType *
> (this->GetDisplacementField());
163 virtual std::vector< SmartPointer< DataObject > >::size_type GetNumberOfValidRequiredInputs() const ITK_OVERRIDE;
170 itkSetMacro(SmoothDisplacementField,
bool);
171 itkGetConstMacro(SmoothDisplacementField,
bool);
172 itkBooleanMacro(SmoothDisplacementField);
175 #ifdef ITKV3_COMPATIBILITY
176 virtual void SetSmoothDeformationField(
bool val)
178 SetSmoothDisplacementField(val);
180 virtual bool GetSmoothDeformationField()
182 return this->GetSmoothDisplacementField();
184 virtual void SmoothDeformationFieldOn()
186 this->SmoothDisplacementFieldOn();
188 virtual void SmoothDeformationFieldOff()
190 this->SmoothDisplacementFieldOff();
199 itkSetMacro(StandardDeviations, StandardDeviationsType);
200 virtual void SetStandardDeviations(
double value);
205 itkGetConstReferenceMacro(StandardDeviations, StandardDeviationsType);
212 itkSetMacro(SmoothUpdateField,
bool);
213 itkGetConstMacro(SmoothUpdateField,
bool);
214 itkBooleanMacro(SmoothUpdateField);
219 itkSetMacro(UpdateFieldStandardDeviations, StandardDeviationsType);
220 virtual void SetUpdateFieldStandardDeviations(
double value);
225 itkGetConstReferenceMacro(UpdateFieldStandardDeviations, StandardDeviationsType);
229 { m_StopRegistrationFlag =
true; }
233 itkSetMacro(MaximumError,
double);
234 itkGetConstMacro(MaximumError,
double);
239 itkSetMacro(MaximumKernelWidth,
unsigned int);
240 itkGetConstMacro(MaximumKernelWidth,
unsigned int);
246 void PrintSelf(std::ostream & os,
Indent indent)
const ITK_OVERRIDE;
250 virtual bool Halt() ITK_OVERRIDE
252 if ( m_StopRegistrationFlag )
257 return this->Superclass::Halt();
262 virtual void CopyInputToOutput() ITK_OVERRIDE;
266 virtual
void InitializeIteration() ITK_OVERRIDE;
271 virtual
void SmoothDisplacementField();
272 #ifdef ITKV3_COMPATIBILITY
273 virtual void SmoothDeformationField()
275 this->SmoothDisplacementField();
282 virtual void SmoothUpdateField();
286 virtual void PostProcessOutput() ITK_OVERRIDE;
289 virtual
void Initialize() ITK_OVERRIDE;
295 virtual
void GenerateOutputInformation() ITK_OVERRIDE;
303 virtual
void GenerateInputRequestedRegion() ITK_OVERRIDE;
313 bool m_SmoothDisplacementField;
314 bool m_SmoothUpdateField;
322 double m_MaximumError;
325 unsigned int m_MaximumKernelWidth;
328 bool m_StopRegistrationFlag;
332 #ifndef ITK_MANUAL_INSTANTIATION
333 #include "itkPDEDeformableRegistrationFilter.hxx"
Light weight base class for most itk classes.
Control indentation during Print() invocation.