template<typename TFixedImage, typename TMovingImage, typename TOutputTransform = DisplacementFieldTransform<double, TFixedImage::ImageDimension>>
class itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TOutputTransform >
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.
- Todo:
- Need to allow the fixed image to have a composite transform.
- Author
- Nick Tustison
-
Brian Avants
Definition at line 74 of file itkSyNImageRegistrationMethod.h.
|
typedef
Superclass::CompositeTransformType | CompositeTransformType |
| |
| typedef SmartPointer< const Self > | ConstPointer |
| |
typedef
DecoratedOutputTransformType::Pointer | DecoratedOutputTransformPointer |
| |
typedef
Superclass::DecoratedOutputTransformType | DecoratedOutputTransformType |
| |
typedef
OutputTransformType::DerivativeType | DerivativeType |
| |
| typedef DerivativeType::ValueType | DerivativeValueType |
| |
typedef
DisplacementFieldType::Pointer | DisplacementFieldPointer |
| |
typedef
OutputTransformType::DisplacementFieldType | DisplacementFieldType |
| |
typedef
DisplacementFieldType::PixelType | DisplacementVectorType |
| |
typedef
ImageMetricType::FixedImageMaskType | FixedImageMaskType |
| |
| typedef FixedImageType::Pointer | FixedImagePointer |
| |
typedef
Superclass::FixedImagesContainerType | FixedImagesContainerType |
| |
| typedef TFixedImage | FixedImageType |
| |
| typedef ImageMetricType::Pointer | ImageMetricPointer |
| |
| typedef Superclass::ImageMetricType | ImageMetricType |
| |
typedef
ImageMetricType::MeasureType | MeasureType |
| |
typedef
ImageMetricType::MovingImageMaskType | MovingImageMaskType |
| |
| typedef MovingImageType::Pointer | MovingImagePointer |
| |
typedef
Superclass::MovingImagesContainerType | MovingImagesContainerType |
| |
| typedef TMovingImage | MovingImageType |
| |
| typedef Superclass::MultiMetricType | MultiMetricType |
| |
| typedef Array< SizeValueType > | NumberOfIterationsArrayType |
| |
typedef
OutputTransformType::Pointer | OutputTransformPointer |
| |
| typedef TOutputTransform | OutputTransformType |
| |
| typedef SmartPointer< Self > | Pointer |
| |
typedef
OutputTransformType::ScalarType | RealType |
| |
| typedef SyNImageRegistrationMethod | Self |
| |
typedef
ImageRegistrationMethodv4
< TFixedImage, TMovingImage,
TOutputTransform > | Superclass |
| |
typedef
CompositeTransformType::TransformType | TransformBaseType |
| |
typedef
ImageMetricType::VirtualImageType | VirtualImageType |
| |
typedef
CompositeTransformType::Pointer | CompositeTransformPointer |
| |
typedef CompositeTransform
< RealType, ImageDimension > | CompositeTransformType |
| |
| typedef SmartPointer< const Self > | ConstPointer |
| |
typedef
ProcessObject::DataObjectPointerArraySizeType | DataObjectPointerArraySizeType |
| |
typedef
DecoratedOutputTransformType::Pointer | DecoratedOutputTransformPointer |
| |
typedef DataObjectDecorator
< OutputTransformType > | DecoratedOutputTransformType |
| |
typedef
OutputTransformType::DerivativeType | DerivativeType |
| |
| typedef DerivativeType::ValueType | DerivativeValueType |
| |
| typedef FixedImageType::Pointer | FixedImagePointer |
| |
typedef std::vector
< FixedImagePointer > | FixedImagesContainerType |
| |
| typedef TFixedImage | FixedImageType |
| |
typedef ImageToImageMetricv4
< FixedImageType,
MovingImageType > | ImageMetricType |
| |
typedef
InitialTransformType::Pointer | InitialTransformPointer |
| |
typedef Transform< RealType,
ImageDimension, ImageDimension > | InitialTransformType |
| |
| typedef MetricType::Pointer | MetricPointer |
| |
typedef
ImageMetricType::FixedSampledPointSetType | MetricSamplePointSetType |
| |
| typedef Array< RealType > | MetricSamplingPercentageArrayType |
| |
| enum | MetricSamplingStrategyType {
NONE,
REGULAR,
RANDOM
} |
| |
| typedef ObjectToObjectMetricBase | MetricType |
| |
| typedef MovingImageType::Pointer | MovingImagePointer |
| |
typedef std::vector
< MovingImagePointer > | MovingImagesContainerType |
| |
| typedef TMovingImage | MovingImageType |
| |
typedef
ObjectToObjectMultiMetricv4
< ImageDimension,
ImageDimension > | MultiMetricType |
| |
| typedef OptimizerType::Pointer | OptimizerPointer |
| |
| typedef ObjectToObjectOptimizerBase | OptimizerType |
| |
typedef
OutputTransformType::Pointer | OutputTransformPointer |
| |
| typedef TOutputTransform | OutputTransformType |
| |
| typedef SmartPointer< Self > | Pointer |
| |
typedef
OutputTransformType::ScalarType | RealType |
| |
| typedef ImageRegistrationMethodv4 | Self |
| |
| typedef Array< SizeValueType > | ShrinkFactorsArrayType |
| |
typedef
ShrinkFilterType::ShrinkFactorsType | ShrinkFactorsPerDimensionContainerType |
| |
typedef ShrinkImageFilter
< FixedImageType,
VirtualImageType > | ShrinkFilterType |
| |
| typedef Array< RealType > | SmoothingSigmasArrayType |
| |
| typedef ProcessObject | Superclass |
| |
typedef
TransformParametersAdaptorType::Pointer | TransformParametersAdaptorPointer |
| |
typedef std::vector
< TransformParametersAdaptorPointer > | TransformParametersAdaptorsContainerType |
| |
typedef
TransformParametersAdaptor
< OutputTransformType > | TransformParametersAdaptorType |
| |
typedef
ImageMetricType::VirtualImageType | VirtualImageType |
| |
| typedef SmartPointer< const Self > | ConstPointer |
| |
typedef
DataObject::DataObjectIdentifierType | DataObjectIdentifierType |
| |
| typedef DataObject::Pointer | DataObjectPointer |
| |
typedef std::vector
< DataObjectPointer > | DataObjectPointerArray |
| |
typedef
DataObjectPointerArray::size_type | DataObjectPointerArraySizeType |
| |
typedef std::vector
< DataObjectIdentifierType > | NameArray |
| |
| typedef SmartPointer< Self > | Pointer |
| |
| typedef ProcessObject | Self |
| |
| typedef Object | Superclass |
| |
| typedef SmartPointer< const Self > | ConstPointer |
| |
| typedef SmartPointer< Self > | Pointer |
| |
| typedef Object | Self |
| |
| typedef LightObject | Superclass |
| |
| typedef SmartPointer< const Self > | ConstPointer |
| |
| typedef SmartPointer< Self > | Pointer |
| |
| typedef LightObject | Self |
| |
|
| virtual DisplacementFieldPointer | ComputeUpdateField (const FixedImagesContainerType, const TransformBaseType *, const MovingImagesContainerType, const TransformBaseType *, const FixedImageMaskType *, MeasureType &) |
| |
| virtual DisplacementFieldPointer | GaussianSmoothDisplacementField (const DisplacementFieldType *, const RealType) |
| |
| virtual void | GenerateData () |
| |
| virtual void | InitializeRegistrationAtEachLevel (const SizeValueType) |
| |
| virtual DisplacementFieldPointer | InvertDisplacementField (const DisplacementFieldType *, const DisplacementFieldType *=NULL) |
| |
| virtual void | PrintSelf (std::ostream &os, Indent indent) const |
| |
| virtual void | StartOptimization () |
| |
| | SyNImageRegistrationMethod () |
| |
| virtual | ~SyNImageRegistrationMethod () |
| |
| | ImageRegistrationMethodv4 () |
| |
| virtual void | SetMetricSamplePoints () |
| |
| virtual | ~ImageRegistrationMethodv4 () |
| |
| virtual void | AddInput (DataObject *input) |
| |
| virtual void | AddOutput (DataObject *output) |
| |
| virtual void | CacheInputReleaseDataFlags () |
| |
| virtual void | GenerateInputRequestedRegion () |
| |
| virtual void | GenerateOutputInformation () |
| |
| virtual void | GenerateOutputRequestedRegion (DataObject *output) |
| |
virtual const
DataObjectPointerArraySizeType & | GetNumberOfRequiredOutputs () |
| |
| bool | IsIndexedInputName (const DataObjectIdentifierType &) const |
| |
| bool | IsIndexedOutputName (const DataObjectIdentifierType &) const |
| |
| | itkLegacyMacro (virtual void RemoveOutput(DataObject *output)) |
| |
| | itkLegacyMacro (void SetNumberOfOutputs(DataObjectPointerArraySizeType num)) |
| |
| | itkLegacyMacro (virtual void RemoveInput(DataObject *input)) |
| |
| | itkLegacyMacro (void SetNumberOfInputs(DataObjectPointerArraySizeType num)) |
| |
| DataObjectPointerArraySizeType | MakeIndexFromInputName (const DataObjectIdentifierType &name) const |
| |
| DataObjectPointerArraySizeType | MakeIndexFromOutputName (const DataObjectIdentifierType &name) const |
| |
| DataObjectIdentifierType | MakeNameFromInputIndex (DataObjectPointerArraySizeType idx) const |
| |
| DataObjectIdentifierType | MakeNameFromOutputIndex (DataObjectPointerArraySizeType idx) const |
| |
| | ProcessObject () |
| |
| virtual void | PropagateResetPipeline () |
| |
| virtual void | ReleaseInputs () |
| |
| virtual void | RemoveInput (const DataObjectIdentifierType &key) |
| |
| virtual void | RemoveInput (DataObjectPointerArraySizeType) |
| |
| virtual void | RemoveOutput (const DataObjectIdentifierType &key) |
| |
| virtual void | RemoveOutput (DataObjectPointerArraySizeType idx) |
| |
| virtual void | RestoreInputReleaseDataFlags () |
| |
| virtual void | SetInput (const DataObjectIdentifierType &key, DataObject *input) |
| |
| virtual void | SetNthInput (DataObjectPointerArraySizeType num, DataObject *input) |
| |
| virtual void | SetNthOutput (DataObjectPointerArraySizeType num, DataObject *output) |
| |
| void | SetNumberOfIndexedInputs (DataObjectPointerArraySizeType num) |
| |
| void | SetNumberOfIndexedOutputs (DataObjectPointerArraySizeType num) |
| |
| virtual void | SetNumberOfRequiredOutputs (DataObjectPointerArraySizeType _arg) |
| |
| virtual void | SetOutput (const DataObjectIdentifierType &key, DataObject *output) |
| |
| virtual void | SetPrimaryInput (DataObject *input) |
| |
| virtual void | SetPrimaryOutput (DataObject *output) |
| |
| virtual void | VerifyInputInformation () |
| |
| virtual void | VerifyPreconditions () |
| |
| | ~ProcessObject () |
| |
| DataObject * | GetInput (const DataObjectIdentifierType &key) |
| |
| const DataObject * | GetInput (const DataObjectIdentifierType &key) const |
| |
| DataObject * | GetInput (DataObjectPointerArraySizeType idx) |
| |
| const DataObject * | GetInput (DataObjectPointerArraySizeType idx) const |
| |
| virtual void | PushBackInput (const DataObject *input) |
| |
| virtual void | PopBackInput () |
| |
| virtual void | PushFrontInput (const DataObject *input) |
| |
| virtual void | PopFrontInput () |
| |
| DataObject * | GetPrimaryInput () |
| |
| const DataObject * | GetPrimaryInput () const |
| |
| virtual void | SetPrimaryInputName (const DataObjectIdentifierType &key) |
| |
| virtual const char * | GetPrimaryInputName (void) const |
| |
| virtual void | SetNumberOfRequiredInputs (DataObjectPointerArraySizeType) |
| |
virtual const
DataObjectPointerArraySizeType & | GetNumberOfRequiredInputs () |
| |
| bool | AddRequiredInputName (const DataObjectIdentifierType &) |
| |
| bool | AddRequiredInputName (const DataObjectIdentifierType &, DataObjectPointerArraySizeType idx) |
| |
| bool | RemoveRequiredInputName (const DataObjectIdentifierType &) |
| |
| bool | IsRequiredInputName (const DataObjectIdentifierType &) const |
| |
| void | SetRequiredInputNames (const NameArray &) |
| |
| DataObject * | GetOutput (const DataObjectIdentifierType &key) |
| |
| const DataObject * | GetOutput (const DataObjectIdentifierType &key) const |
| |
| virtual void | SetPrimaryOutputName (const DataObjectIdentifierType &key) |
| |
| virtual const char * | GetPrimaryOutputName (void) const |
| |
| DataObject * | GetOutput (DataObjectPointerArraySizeType idx) |
| |
| const DataObject * | GetOutput (DataObjectPointerArraySizeType idx) const |
| |
| DataObject * | GetPrimaryOutput () |
| |
| const DataObject * | GetPrimaryOutput () const |
| |
| | Object () |
| |
| bool | PrintObservers (std::ostream &os, Indent indent) const |
| |
| virtual void | SetTimeStamp (const TimeStamp &time) |
| |
| virtual | ~Object () |
| |
| virtual LightObject::Pointer | InternalClone () const |
| |
| | LightObject () |
| |
| virtual void | PrintHeader (std::ostream &os, Indent indent) const |
| |
| virtual void | PrintTrailer (std::ostream &os, Indent indent) const |
| |
| virtual | ~LightObject () |
| |