ITK
4.1.0
Insight Segmentation and Registration Toolkit
|
#include <itkSyNImageRegistrationMethod.h>
Interface method for the performing greedy SyN image registration.
For greedy SyN we use m_Transform
to map the time-parameterized middle image to the fixed image (and vice versa using m_Transform->GetInverseDisplacementField()
). We employ another ivar, m_InverseTransform
, to map the time-parameterized middle image to the moving image.
Output: The output is the updated transform which has been added to the composite transform.
This implementation is based on the source code in Advanced Normalization Tools (ANTs)
Avants, B. B.; Tustison, N. J.; Song, G.; Cook, P. A.; Klein, A. & Gee, J. C. A reproducible evaluation of ANTs similarity metric performance in brain image registration. Neuroimage, Penn Image Computing and Science Laboratory, University of Pennsylvania, 2011, 54, 2033-2044
The original paper discussing the method is here:
Avants, B. B.; Epstein, C. L.; Grossman, M. & Gee, J. C. Symmetric diffeomorphic image registration with cross-correlation: evaluating automated labeling of elderly and neurodegenerative brain. Med Image Anal, Department of Radiology, University of Pennsylvania, 2008, 12, 26-41
The method evolved since that time with crucial contributions from Gang Song and Nick Tustison. Though similar in spirit, this implementation is not identical.
Definition at line 74 of file itkSyNImageRegistrationMethod.h.
typedef CompositeTransform<RealType, ImageDimension> itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::CompositeTransformType |
Reimplemented from itk::ImageRegistrationMethodv4< TFixedImage, TMovingImage, TTransform >.
Definition at line 113 of file itkSyNImageRegistrationMethod.h.
typedef SmartPointer<const Self> itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::ConstPointer |
Reimplemented from itk::ImageRegistrationMethodv4< TFixedImage, TMovingImage, TTransform >.
Definition at line 82 of file itkSyNImageRegistrationMethod.h.
typedef TransformType::DerivativeType itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::DerivativeType |
Reimplemented from itk::ImageRegistrationMethodv4< TFixedImage, TMovingImage, TTransform >.
Definition at line 107 of file itkSyNImageRegistrationMethod.h.
typedef DerivativeType::ValueType itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::DerivativeValueType |
Reimplemented from itk::ImageRegistrationMethodv4< TFixedImage, TMovingImage, TTransform >.
Definition at line 108 of file itkSyNImageRegistrationMethod.h.
typedef DisplacementFieldType::Pointer itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::DisplacementFieldPointer |
Definition at line 110 of file itkSyNImageRegistrationMethod.h.
typedef TransformType::DisplacementFieldType itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::DisplacementFieldType |
Definition at line 109 of file itkSyNImageRegistrationMethod.h.
typedef DisplacementFieldType::PixelType itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::DisplacementVectorType |
Definition at line 111 of file itkSyNImageRegistrationMethod.h.
typedef FixedImageType::Pointer itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::FixedImagePointer |
Reimplemented from itk::ImageRegistrationMethodv4< TFixedImage, TMovingImage, TTransform >.
Definition at line 95 of file itkSyNImageRegistrationMethod.h.
typedef TFixedImage itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::FixedImageType |
Input typedefs for the images and transforms.
Reimplemented from itk::ImageRegistrationMethodv4< TFixedImage, TMovingImage, TTransform >.
Definition at line 91 of file itkSyNImageRegistrationMethod.h.
typedef MetricType::MeasureType itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::MeasureType |
Definition at line 103 of file itkSyNImageRegistrationMethod.h.
typedef MetricType::Pointer itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::MetricPointer |
Reimplemented from itk::ImageRegistrationMethodv4< TFixedImage, TMovingImage, TTransform >.
Definition at line 101 of file itkSyNImageRegistrationMethod.h.
typedef Superclass::MetricType itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::MetricType |
Metric and transform typedefs
Reimplemented from itk::ImageRegistrationMethodv4< TFixedImage, TMovingImage, TTransform >.
Definition at line 100 of file itkSyNImageRegistrationMethod.h.
typedef MovingImageType::Pointer itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::MovingImagePointer |
Reimplemented from itk::ImageRegistrationMethodv4< TFixedImage, TMovingImage, TTransform >.
Definition at line 97 of file itkSyNImageRegistrationMethod.h.
typedef TMovingImage itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::MovingImageType |
Reimplemented from itk::ImageRegistrationMethodv4< TFixedImage, TMovingImage, TTransform >.
Definition at line 96 of file itkSyNImageRegistrationMethod.h.
typedef Array<SizeValueType> itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::NumberOfIterationsArrayType |
Definition at line 119 of file itkSyNImageRegistrationMethod.h.
typedef SmartPointer<Self> itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::Pointer |
Reimplemented from itk::ImageRegistrationMethodv4< TFixedImage, TMovingImage, TTransform >.
Definition at line 81 of file itkSyNImageRegistrationMethod.h.
typedef TransformType::ScalarType itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::RealType |
Reimplemented from itk::ImageRegistrationMethodv4< TFixedImage, TMovingImage, TTransform >.
Definition at line 106 of file itkSyNImageRegistrationMethod.h.
typedef SyNImageRegistrationMethod itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::Self |
Standard class typedefs.
Reimplemented from itk::ImageRegistrationMethodv4< TFixedImage, TMovingImage, TTransform >.
Definition at line 79 of file itkSyNImageRegistrationMethod.h.
typedef ImageRegistrationMethodv4<TFixedImage, TMovingImage, TTransform> itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::Superclass |
Reimplemented from itk::ImageRegistrationMethodv4< TFixedImage, TMovingImage, TTransform >.
Definition at line 80 of file itkSyNImageRegistrationMethod.h.
typedef CompositeTransformType::TransformType itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::TransformBaseType |
Definition at line 114 of file itkSyNImageRegistrationMethod.h.
typedef TransformOutputType::Pointer itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::TransformOutputPointer |
Reimplemented from itk::ImageRegistrationMethodv4< TFixedImage, TMovingImage, TTransform >.
Definition at line 117 of file itkSyNImageRegistrationMethod.h.
typedef Superclass::TransformOutputType itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::TransformOutputType |
Type for the output: Using Decorator pattern for enabling the transform to be passed in the data pipeline
Reimplemented from itk::ImageRegistrationMethodv4< TFixedImage, TMovingImage, TTransform >.
Definition at line 116 of file itkSyNImageRegistrationMethod.h.
typedef TransformType::Pointer itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::TransformPointer |
Reimplemented from itk::ImageRegistrationMethodv4< TFixedImage, TMovingImage, TTransform >.
Definition at line 105 of file itkSyNImageRegistrationMethod.h.
typedef TTransform itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::TransformType |
Reimplemented from itk::ImageRegistrationMethodv4< TFixedImage, TMovingImage, TTransform >.
Definition at line 104 of file itkSyNImageRegistrationMethod.h.
typedef MetricType::VirtualImageType itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::VirtualImageType |
Definition at line 102 of file itkSyNImageRegistrationMethod.h.
itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::SyNImageRegistrationMethod | ( | ) | [protected] |
virtual itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::~SyNImageRegistrationMethod | ( | ) | [protected, virtual] |
itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::SyNImageRegistrationMethod | ( | const Self & | ) | [private] |
virtual DisplacementFieldPointer itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::ComputeUpdateField | ( | const TFixedImage * | , |
const TransformBaseType * | , | ||
const TMovingImage * | , | ||
const TransformBaseType * | , | ||
MeasureType & | |||
) | [protected, virtual] |
virtual::itk::LightObject::Pointer itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::CreateAnother | ( | void | ) | const [virtual] |
Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.
Reimplemented from itk::ImageRegistrationMethodv4< TFixedImage, TMovingImage, TTransform >.
virtual DisplacementFieldPointer itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::GaussianSmoothDisplacementField | ( | const DisplacementFieldType * | , |
const RealType | |||
) | [protected, virtual] |
virtual void itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::GenerateData | ( | ) | [protected, virtual] |
Perform the registration.
Reimplemented from itk::ImageRegistrationMethodv4< TFixedImage, TMovingImage, TTransform >.
virtual bool itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::GetAverageMidPointGradients | ( | ) | const [virtual] |
Allow the user to average the gradients in the mid-point domain. Default false. One might choose to do this to further reduce bias.
virtual RealType itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::GetConvergenceThreshold | ( | ) | const [virtual] |
Set/Get the convergence threshold
virtual bool itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::GetDownsampleImagesForMetricDerivatives | ( | ) | const [virtual] |
Let the user control whether we compute metric derivatives in the downsampled or full-res space. The default is 'true' --- classic SyN --- but there may be advantages to the other approach. Classic SyN did not have this possibility. This implementation will let us explore the question.
virtual const RealType& itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::GetGaussianSmoothingVarianceForTheTotalField | ( | ) | [virtual] |
Get/Set the Gaussian smoothing standard deviation for the total field. Default = 0.5.
virtual const RealType& itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::GetGaussianSmoothingVarianceForTheUpdateField | ( | ) | [virtual] |
Get/Set the Gaussian smoothing standard deviation for the update field. Default = 1.75.
virtual RealType itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::GetLearningRate | ( | ) | const [virtual] |
Set/Get the learning rate.
virtual const char* itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::GetNameOfClass | ( | ) | const [virtual] |
Run-time type information (and related methods).
Reimplemented from itk::ImageRegistrationMethodv4< TFixedImage, TMovingImage, TTransform >.
virtual NumberOfIterationsArrayType itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::GetNumberOfIterationsPerLevel | ( | ) | const [virtual] |
Set/Get the number of iterations per level.
virtual void itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::InitializeRegistrationAtEachLevel | ( | const SizeValueType | ) | [protected, virtual] |
Initialize by setting the interconnects between the components. Need to override in the SyN class since we need to "adapt" the m_InverseTransform
Reimplemented from itk::ImageRegistrationMethodv4< TFixedImage, TMovingImage, TTransform >.
static Pointer itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::New | ( | ) | [static] |
Method for creation through the object factory.
Reimplemented from itk::ImageRegistrationMethodv4< TFixedImage, TMovingImage, TTransform >.
void itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::operator= | ( | const Self & | ) | [private] |
Time when GenerateOutputInformation was last called.
Reimplemented from itk::ImageRegistrationMethodv4< TFixedImage, TMovingImage, TTransform >.
virtual void itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::PrintSelf | ( | std::ostream & | os, |
Indent | indent | ||
) | const [protected, virtual] |
Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.
Reimplemented from itk::ImageRegistrationMethodv4< TFixedImage, TMovingImage, TTransform >.
virtual void itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::SetAverageMidPointGradients | ( | bool | _arg | ) | [virtual] |
Allow the user to average the gradients in the mid-point domain. Default false. One might choose to do this to further reduce bias.
virtual void itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::SetConvergenceThreshold | ( | RealType | _arg | ) | [virtual] |
Set/Get the convergence threshold
virtual void itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::SetDownsampleImagesForMetricDerivatives | ( | bool | _arg | ) | [virtual] |
Let the user control whether we compute metric derivatives in the downsampled or full-res space. The default is 'true' --- classic SyN --- but there may be advantages to the other approach. Classic SyN did not have this possibility. This implementation will let us explore the question.
virtual void itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::SetGaussianSmoothingVarianceForTheTotalField | ( | RealType | _arg | ) | [virtual] |
Get/Set the Gaussian smoothing standard deviation for the total field. Default = 0.5.
virtual void itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::SetGaussianSmoothingVarianceForTheUpdateField | ( | RealType | _arg | ) | [virtual] |
Get/Set the Gaussian smoothing standard deviation for the update field. Default = 1.75.
virtual void itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::SetLearningRate | ( | RealType | _arg | ) | [virtual] |
Set/Get the learning rate.
virtual void itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::SetNumberOfIterationsPerLevel | ( | NumberOfIterationsArrayType | _arg | ) | [virtual] |
Set/Get the number of iterations per level.
virtual void itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::StartOptimization | ( | ) | [protected, virtual] |
Handle optimization internally
const unsigned int itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::ImageDimension = TFixedImage::ImageDimension [static] |
ImageDimension constants
Reimplemented from itk::ImageRegistrationMethodv4< TFixedImage, TMovingImage, TTransform >.
Definition at line 88 of file itkSyNImageRegistrationMethod.h.
bool itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::m_AverageMidPointGradients [private] |
Definition at line 203 of file itkSyNImageRegistrationMethod.h.
RealType itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::m_ConvergenceThreshold [private] |
Definition at line 199 of file itkSyNImageRegistrationMethod.h.
bool itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::m_DownsampleImagesForMetricDerivatives [private] |
Definition at line 202 of file itkSyNImageRegistrationMethod.h.
RealType itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::m_GaussianSmoothingVarianceForTheTotalField [private] |
Definition at line 194 of file itkSyNImageRegistrationMethod.h.
RealType itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::m_GaussianSmoothingVarianceForTheUpdateField [private] |
Definition at line 193 of file itkSyNImageRegistrationMethod.h.
RealType itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::m_LearningRate [private] |
Definition at line 191 of file itkSyNImageRegistrationMethod.h.
TransformPointer itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::m_MiddleToFixedTransform [private] |
Definition at line 197 of file itkSyNImageRegistrationMethod.h.
TransformPointer itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::m_MiddleToMovingTransform [private] |
Definition at line 196 of file itkSyNImageRegistrationMethod.h.
NumberOfIterationsArrayType itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TTransform >::m_NumberOfIterationsPerLevel [private] |
Definition at line 201 of file itkSyNImageRegistrationMethod.h.