18 #ifndef __itkESMDemonsRegistrationFunction_h
19 #define __itkESMDemonsRegistrationFunction_h
61 template<
class TFixedImage,
class TMovingImage,
class TDeformationField>
64 TMovingImage, TDeformationField>
70 TFixedImage, TMovingImage, TDeformationField >
Superclass;
89 typedef typename FixedImageType::IndexType
IndexType;
90 typedef typename FixedImageType::SizeType
SizeType;
96 typedef typename Superclass::DeformationFieldTypePointer
100 itkStaticConstMacro(ImageDimension,
unsigned int,Superclass::ImageDimension);
139 { m_MovingImageInterpolator = ptr; m_MovingImageWarper->SetInterpolator( ptr ); }
143 {
return m_MovingImageInterpolator; }
146 virtual TimeStepType ComputeGlobalTimeStep(
void * itkNotUsed(GlobalData))
const
147 {
return m_TimeStep; }
151 virtual void *GetGlobalDataPointer()
const
161 virtual void ReleaseGlobalDataPointer(
void *GlobalData )
const;
164 virtual void InitializeIteration();
168 virtual PixelType ComputeUpdate(
const NeighborhoodType &neighborhood,
170 const FloatOffsetType &offset = FloatOffsetType(0.0));
175 virtual double GetMetric()
const
179 virtual const double &GetRMSChange()
const
180 {
return m_RMSChange; }
186 virtual void SetIntensityDifferenceThreshold(
double);
187 virtual double GetIntensityDifferenceThreshold()
const;
192 virtual void SetMaximumUpdateStepLength(
double sm)
194 this->m_MaximumUpdateStepLength =sm;
196 virtual double GetMaximumUpdateStepLength()
const
198 return this->m_MaximumUpdateStepLength;
211 { m_UseGradientType = gtype; }
213 {
return m_UseGradientType; }
218 void PrintSelf(std::ostream& os,
Indent indent)
const;
234 void operator=(
const Self&);
283 #ifndef ITK_MANUAL_INSTANTIATION