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);
145 {
return this->GetOutput(); }
147 #ifdef ITKV3_COMPATIBILITY
148 virtual void SetInitialDeformationField(DeformationFieldType *ptr)
150 this->SetInitialDisplacementField(ptr);
154 DeformationFieldType * GetDeformationField(
void)
156 return static_cast<DeformationFieldType *
> (this->GetDisplacementField());
165 virtual std::vector< SmartPointer< DataObject > >::size_type GetNumberOfValidRequiredInputs() const ITK_OVERRIDE;
172 itkSetMacro(SmoothDisplacementField,
bool);
173 itkGetConstMacro(SmoothDisplacementField,
bool);
174 itkBooleanMacro(SmoothDisplacementField);
177 #ifdef ITKV3_COMPATIBILITY
178 virtual void SetSmoothDeformationField(
bool val)
180 SetSmoothDisplacementField(val);
182 virtual bool GetSmoothDeformationField()
184 return this->GetSmoothDisplacementField();
186 virtual void SmoothDeformationFieldOn()
188 this->SmoothDisplacementFieldOn();
190 virtual void SmoothDeformationFieldOff()
192 this->SmoothDisplacementFieldOff();
201 itkSetMacro(StandardDeviations, StandardDeviationsType);
202 virtual void SetStandardDeviations(
double value);
207 itkGetConstReferenceMacro(StandardDeviations, StandardDeviationsType);
214 itkSetMacro(SmoothUpdateField,
bool);
215 itkGetConstMacro(SmoothUpdateField,
bool);
216 itkBooleanMacro(SmoothUpdateField);
221 itkSetMacro(UpdateFieldStandardDeviations, StandardDeviationsType);
222 virtual void SetUpdateFieldStandardDeviations(
double value);
227 itkGetConstReferenceMacro(UpdateFieldStandardDeviations, StandardDeviationsType);
231 { m_StopRegistrationFlag =
true; }
235 itkSetMacro(MaximumError,
double);
236 itkGetConstMacro(MaximumError,
double);
241 itkSetMacro(MaximumKernelWidth,
unsigned int);
242 itkGetConstMacro(MaximumKernelWidth,
unsigned int);
248 void PrintSelf(std::ostream & os,
Indent indent)
const ITK_OVERRIDE;
252 virtual bool Halt() ITK_OVERRIDE
254 if ( m_StopRegistrationFlag )
259 return this->Superclass::Halt();
264 virtual void CopyInputToOutput() ITK_OVERRIDE;
268 virtual
void InitializeIteration() ITK_OVERRIDE;
273 virtual
void SmoothDisplacementField();
274 #ifdef ITKV3_COMPATIBILITY
275 virtual void SmoothDeformationField()
277 this->SmoothDisplacementField();
284 virtual void SmoothUpdateField();
288 virtual void PostProcessOutput() ITK_OVERRIDE;
291 virtual
void Initialize() ITK_OVERRIDE;
297 virtual
void GenerateOutputInformation() ITK_OVERRIDE;
305 virtual
void GenerateInputRequestedRegion() ITK_OVERRIDE;
315 bool m_SmoothDisplacementField;
316 bool m_SmoothUpdateField;
324 double m_MaximumError;
327 unsigned int m_MaximumKernelWidth;
330 bool m_StopRegistrationFlag;
334 #ifndef ITK_MANUAL_INSTANTIATION
335 #include "itkPDEDeformableRegistrationFilter.hxx"
Light weight base class for most itk classes.
Control indentation during Print() invocation.