18 #ifndef __itkPDEDeformableRegistrationFilter_h
19 #define __itkPDEDeformableRegistrationFilter_h
72 template<
class TFixedImage,
class TMovingImage,
class 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;
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();
194 typedef FixedArray< double, ImageDimension > StandardDeviationsType;
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);
228 virtual void StopRegistration()
229 { m_StopRegistrationFlag =
true; }
233 itkSetMacro(MaximumError,
double);
234 itkGetConstMacro(MaximumError,
double);
239 itkSetMacro(MaximumKernelWidth,
unsigned int);
240 itkGetConstMacro(MaximumKernelWidth,
unsigned int);
244 void PrintSelf(std::ostream & os,
Indent indent)
const;
251 if ( m_StopRegistrationFlag )
256 return this->Superclass::Halt();
261 virtual void CopyInputToOutput();
265 virtual void InitializeIteration();
270 virtual void SmoothDisplacementField();
271 #ifdef ITKV3_COMPATIBILITY
272 virtual void SmoothDeformationField()
274 this->SmoothDisplacementField();
281 virtual void SmoothUpdateField();
285 virtual void PostProcessOutput();
288 virtual void Initialize();
294 virtual void GenerateOutputInformation();
302 virtual void GenerateInputRequestedRegion();
305 PDEDeformableRegistrationFilter(
const Self &);
306 void operator=(
const Self &);
332 #ifndef ITK_MANUAL_INSTANTIATION
333 #include "itkPDEDeformableRegistrationFilter.hxx"