18 #ifndef itkDiffeomorphicDemonsRegistrationFilter_h
19 #define itkDiffeomorphicDemonsRegistrationFilter_h
77 template<
typename TFixedImage,
typename TMovingImage,
typename TDisplacementField >
106 #ifdef ITKV3_COMPATIBILITY
107 typedef typename Superclass::DeformationFieldType DeformationFieldType;
108 typedef typename Superclass::DeformationFieldPointer DeformationFieldPointer;
115 typedef typename FiniteDifferenceFunctionType::TimeStepType
TimeStepType;
123 ImageDimension,
unsigned int, FixedImageType::ImageDimension);
129 virtual double GetMetric()
const;
131 virtual const double & GetRMSChange() const ITK_OVERRIDE;
140 itkSetMacro(UseFirstOrderExp,
bool);
141 itkGetConstMacro(UseFirstOrderExp,
bool);
142 itkBooleanMacro(UseFirstOrderExp);
149 virtual
void SetIntensityDifferenceThreshold(
double);
151 virtual
double GetIntensityDifferenceThreshold() const;
155 virtual
void SetMaximumUpdateStepLength(
double);
157 virtual
double GetMaximumUpdateStepLength() const;
161 ~DiffeomorphicDemonsRegistrationFilter() ITK_OVERRIDE {}
162 void PrintSelf(std::ostream & os,
Indent indent)
const ITK_OVERRIDE;
165 virtual void InitializeIteration() ITK_OVERRIDE;
169 virtual
void AllocateUpdateBuffer() ITK_OVERRIDE;
172 virtual
void ApplyUpdate(const TimeStepType& dt) ITK_OVERRIDE;
179 DemonsRegistrationFunctionType * DownCastDifferenceFunctionType();
181 const DemonsRegistrationFunctionType * DownCastDifferenceFunctionType() const;
185 itk::
Image<TimeStepType, ImageDimension>,
192 DisplacementFieldType,
199 DisplacementFieldType,
200 DisplacementFieldType, DisplacementFieldType >
AdderType;
209 MultiplyByConstantPointer m_Multiplier;
210 FieldExponentiatorPointer m_Exponentiator;
211 VectorWarperPointer m_Warper;
212 AdderPointer m_Adder;
213 bool m_UseFirstOrderExp;
217 #ifndef ITK_MANUAL_INSTANTIATION
218 #include "itkDiffeomorphicDemonsRegistrationFilter.hxx"
DemonsRegistrationFunctionType::GradientType GradientType
FiniteDifferenceFunctionType::TimeStepType TimeStepType
Superclass::MovingImagePointer MovingImagePointer
Pixel-wise addition of two images.
Light weight base class for most itk classes.
Superclass::FixedImageType FixedImageType
FieldInterpolatorType::OutputType FieldInterpolatorOutputType
DiffeomorphicDemonsRegistrationFilter Self
Superclass::FiniteDifferenceFunctionType FiniteDifferenceFunctionType
Warps an image using an input displacement field.
Superclass::DisplacementFieldType DisplacementFieldType
Computes a diffeomorphic displacement field as the Lie group exponential of a vector field...
Deformably register two images using a diffeomorphic demons algorithm.
Superclass::DisplacementFieldPointer DisplacementFieldPointer
PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > Superclass
Superclass::MovingImageType MovingImageType
Control indentation during Print() invocation.
Pixel-wise multiplication of two images.
Superclass::FixedImagePointer FixedImagePointer
ESMDemonsRegistrationFunction< FixedImageType, MovingImageType, DisplacementFieldType > DemonsRegistrationFunctionType
SmartPointer< const Self > ConstPointer
SmartPointer< Self > Pointer
Templated n-dimensional image class.
Fast implementation of the symmetric demons registration force.