template<typename TFixedImage, typename TMovingImage, typename TOutputTransform = DisplacementFieldTransform<double, TFixedImage::ImageDimension>, typename TVirtualImage = TFixedImage, typename TPointSet = PointSet<unsigned int, TFixedImage::ImageDimension>>
class itk::SyNImageRegistrationMethod< TFixedImage, TMovingImage, TOutputTransform, TVirtualImage, TPointSet >
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) [6].
The original paper discussing the method is [5].
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 61 of file itkSyNImageRegistrationMethod.h.
|
using | ConstPointer = SmartPointer<const Self> |
|
using | DecoratedOutputTransformPointer = typename DecoratedOutputTransformType::Pointer |
|
using | DerivativeType = typename OutputTransformType::DerivativeType |
|
using | DerivativeValueType = typename DerivativeType::ValueType |
|
using | DisplacementFieldPointer = typename DisplacementFieldType::Pointer |
|
using | DisplacementFieldTransformPointer = typename DisplacementFieldTransformType::Pointer |
|
using | DisplacementFieldTransformType = DisplacementFieldTransform<RealType, ImageDimension> |
|
using | DisplacementFieldType = typename OutputTransformType::DisplacementFieldType |
|
using | DisplacementVectorType = typename DisplacementFieldType::PixelType |
|
using | FixedImagePointer = typename FixedImageType::Pointer |
|
using | FixedImageType = TFixedImage |
|
using | FixedMaskImageType = typename ImageMaskSpatialObjectType::ImageType |
|
using | ImageMaskSpatialObjectType = ImageMaskSpatialObject<ImageDimension> |
|
using | ImageMetricPointer = typename ImageMetricType::Pointer |
|
using | MeasureType = typename ImageMetricType::MeasureType |
|
using | MetricPointer = typename MetricType::Pointer |
|
using | MovingImagePointer = typename MovingImageType::Pointer |
|
using | MovingImageType = TMovingImage |
|
using | MovingMaskImageType = typename ImageMaskSpatialObjectType::ImageType |
|
using | NumberOfIterationsArrayType = Array<SizeValueType> |
|
using | OutputTransformPointer = typename OutputTransformType::Pointer |
|
using | OutputTransformType = TOutputTransform |
|
using | Pointer = SmartPointer<Self> |
|
using | PointSetPointer = typename PointSetType::Pointer |
|
using | RealType = typename OutputTransformType::ScalarType |
|
using | Self = SyNImageRegistrationMethod |
|
using | Superclass = ImageRegistrationMethodv4<TFixedImage, TMovingImage, TOutputTransform, TVirtualImage, TPointSet> |
|
using | TransformBaseType = typename CompositeTransformType::TransformType |
|
using | VirtualImageType = typename Superclass::VirtualImageType |
|
using | CompositeTransformPointer = typename CompositeTransformType::Pointer |
|
using | CompositeTransformType = CompositeTransform<RealType, ImageDimension> |
|
using | ConstPointer = SmartPointer<const Self> |
|
using | DataObjectPointerArraySizeType = ProcessObject::DataObjectPointerArraySizeType |
|
using | DecoratedInitialTransformPointer = typename DecoratedInitialTransformType::Pointer |
|
using | DecoratedInitialTransformType = DataObjectDecorator<InitialTransformType> |
|
using | DecoratedOutputTransformPointer = typename DecoratedOutputTransformType::Pointer |
|
using | DecoratedOutputTransformType = DataObjectDecorator<OutputTransformType> |
|
using | DerivativeType = typename OutputTransformType::DerivativeType |
|
using | DerivativeValueType = typename DerivativeType::ValueType |
|
using | FixedImageConstPointer = typename FixedImageType::ConstPointer |
|
using | FixedImageMaskConstPointer = typename FixedImageMaskType::ConstPointer |
|
using | FixedImageMasksContainerType = std::vector<FixedImageMaskConstPointer> |
|
using | FixedImageMaskType = typename ImageMetricType::FixedImageMaskType |
|
using | FixedImagePointer = typename FixedImageType::Pointer |
|
using | FixedImagesContainerType = std::vector<FixedImageConstPointer> |
|
using | FixedImageType = TFixedImage |
|
using | ImageMetricType = ImageToImageMetricv4<FixedImageType, MovingImageType, VirtualImageType, RealType> |
|
using | InitialTransformPointer = typename InitialTransformType::Pointer |
|
using | InitialTransformType = Transform<RealType, ImageDimension, ImageDimension> |
|
using | MetricPointer = typename MetricType::Pointer |
|
using | MetricSamplePointSetType = typename ImageMetricType::FixedSampledPointSetType |
|
using | MetricSamplingPercentageArrayType = Array<RealType> |
|
using | MetricSamplingStrategyEnum = ImageRegistrationMethodv4Enums::MetricSamplingStrategy |
|
using | MetricType = ObjectToObjectMetricBaseTemplate<RealType> |
|
using | MovingImageConstPointer = typename MovingImageType::ConstPointer |
|
using | MovingImageMaskConstPointer = typename MovingImageMaskType::ConstPointer |
|
using | MovingImageMasksContainerType = std::vector<MovingImageMaskConstPointer> |
|
using | MovingImageMaskType = typename ImageMetricType::MovingImageMaskType |
|
using | MovingImagePointer = typename MovingImageType::Pointer |
|
using | MovingImagesContainerType = std::vector<MovingImageConstPointer> |
|
using | MovingImageType = TMovingImage |
|
using | MultiMetricType = ObjectToObjectMultiMetricv4<ImageDimension, ImageDimension, VirtualImageType, RealType> |
|
using | OptimizerPointer = typename OptimizerType::Pointer |
|
using | OptimizerType = ObjectToObjectOptimizerBaseTemplate<RealType> |
|
using | OptimizerWeightsType = typename OptimizerType::ScalesType |
|
using | OutputTransformPointer = typename OutputTransformType::Pointer |
|
using | OutputTransformType = TOutputTransform |
|
using | Pointer = SmartPointer<Self> |
|
using | PointSetConstPointer = typename PointSetType::ConstPointer |
|
using | PointSetMetricType = PointSetToPointSetMetricWithIndexv4<PointSetType, PointSetType, RealType> |
|
using | PointSetsContainerType = std::vector<PointSetConstPointer> |
|
using | PointSetType = TPointSet |
|
using | RealType = typename OutputTransformType::ScalarType |
|
using | Self = ImageRegistrationMethodv4 |
|
using | ShrinkFactorsArrayType = Array<SizeValueType> |
|
using | ShrinkFactorsPerDimensionContainerType = typename ShrinkFilterType::ShrinkFactorsType |
|
using | ShrinkFilterType = ShrinkImageFilter<FixedImageType, VirtualImageType> |
|
using | SmoothingSigmasArrayType = Array<RealType> |
|
using | Superclass = ProcessObject |
|
using | TransformParametersAdaptorPointer = typename TransformParametersAdaptorType::Pointer |
|
using | TransformParametersAdaptorsContainerType = std::vector<TransformParametersAdaptorPointer> |
|
using | TransformParametersAdaptorType = TransformParametersAdaptorBase<InitialTransformType> |
|
using | VectorType = Vector<RealType, ImageDimension> |
|
using | VirtualImageBaseConstPointer = typename VirtualImageBaseType::ConstPointer |
|
using | VirtualImageBaseType = ImageBase<ImageDimension> |
|
using | VirtualImagePointer = typename VirtualImageType::Pointer |
|
using | VirtualImageType = TVirtualImage |
|
using | ConstPointer = SmartPointer<const Self> |
|
using | DataObjectIdentifierType = DataObject::DataObjectIdentifierType |
|
using | DataObjectPointer = DataObject::Pointer |
|
using | DataObjectPointerArray = std::vector<DataObjectPointer> |
|
using | DataObjectPointerArraySizeType = DataObjectPointerArray::size_type |
|
using | MultiThreaderType = MultiThreaderBase |
|
using | NameArray = std::vector<DataObjectIdentifierType> |
|
using | Pointer = SmartPointer<Self> |
|
using | Self = ProcessObject |
|
using | Superclass = Object |
|
using | ConstPointer = SmartPointer<const Self> |
|
using | Pointer = SmartPointer<Self> |
|
using | Self = Object |
|
using | Superclass = LightObject |
|
using | ConstPointer = SmartPointer<const Self> |
|
using | Pointer = SmartPointer<Self> |
|
using | Self = LightObject |
|
|
virtual DisplacementFieldPointer | ComputeMetricGradientField (const FixedImagesContainerType, const PointSetsContainerType, const TransformBaseType *, const MovingImagesContainerType, const PointSetsContainerType, const TransformBaseType *, const FixedImageMasksContainerType, const MovingImageMasksContainerType, MeasureType &) |
|
virtual DisplacementFieldPointer | ComputeUpdateField (const FixedImagesContainerType, const PointSetsContainerType, const TransformBaseType *, const MovingImagesContainerType, const PointSetsContainerType, const TransformBaseType *, const FixedImageMasksContainerType, const MovingImageMasksContainerType, MeasureType &) |
|
virtual DisplacementFieldPointer | GaussianSmoothDisplacementField (const DisplacementFieldType *, const RealType) |
|
void | GenerateData () override |
|
void | InitializeRegistrationAtEachLevel (const SizeValueType) override |
|
virtual DisplacementFieldPointer | InvertDisplacementField (const DisplacementFieldType *, const DisplacementFieldType *=nullptr) |
|
void | PrintSelf (std::ostream &os, Indent indent) const override |
|
virtual DisplacementFieldPointer | ScaleUpdateField (const DisplacementFieldType *) |
|
virtual void | StartOptimization () |
|
| SyNImageRegistrationMethod () |
|
| ~SyNImageRegistrationMethod () override=default |
|
virtual void | AllocateOutputs () |
|
virtual VirtualImageBaseConstPointer | GetCurrentLevelVirtualDomainImage () |
|
| ImageRegistrationMethodv4 () |
|
virtual void | SetMetricSamplePoints () |
|
| ~ImageRegistrationMethodv4 () override=default |
|
virtual void | AddInput (DataObject *input) |
|
void | AddOptionalInputName (const DataObjectIdentifierType &) |
|
void | AddOptionalInputName (const DataObjectIdentifierType &, DataObjectPointerArraySizeType idx) |
|
virtual void | AddOutput (DataObject *output) |
|
bool | AddRequiredInputName (const DataObjectIdentifierType &) |
|
bool | AddRequiredInputName (const DataObjectIdentifierType &, DataObjectPointerArraySizeType idx) |
|
virtual void | CacheInputReleaseDataFlags () |
|
virtual void | GenerateInputRequestedRegion () |
|
virtual void | GenerateOutputInformation () |
|
virtual void | GenerateOutputRequestedRegion (DataObject *output) |
|
DataObject * | GetInput (const DataObjectIdentifierType &key) |
|
const DataObject * | GetInput (const DataObjectIdentifierType &key) const |
|
virtual const DataObjectPointerArraySizeType & | GetNumberOfRequiredInputs () const |
|
virtual const DataObjectPointerArraySizeType & | GetNumberOfRequiredOutputs () const |
|
bool | IsIndexedInputName (const DataObjectIdentifierType &) const |
|
bool | IsIndexedOutputName (const DataObjectIdentifierType &) const |
|
bool | IsRequiredInputName (const DataObjectIdentifierType &) const |
|
DataObjectPointerArraySizeType | MakeIndexFromInputName (const DataObjectIdentifierType &name) const |
|
DataObjectPointerArraySizeType | MakeIndexFromOutputName (const DataObjectIdentifierType &name) const |
|
DataObjectIdentifierType | MakeNameFromInputIndex (DataObjectPointerArraySizeType idx) const |
|
DataObjectIdentifierType | MakeNameFromOutputIndex (DataObjectPointerArraySizeType idx) const |
|
virtual void | PopBackInput () |
|
virtual void | PopFrontInput () |
|
| ProcessObject () |
|
virtual void | PropagateResetPipeline () |
|
virtual void | PushBackInput (const DataObject *input) |
|
virtual void | PushFrontInput (const DataObject *input) |
|
virtual void | ReleaseInputs () |
|
virtual void | RemoveInput (const DataObjectIdentifierType &key) |
|
virtual void | RemoveInput (DataObjectPointerArraySizeType) |
|
virtual void | RemoveOutput (const DataObjectIdentifierType &key) |
|
virtual void | RemoveOutput (DataObjectPointerArraySizeType idx) |
|
bool | RemoveRequiredInputName (const DataObjectIdentifierType &) |
|
virtual void | RestoreInputReleaseDataFlags () |
|
virtual void | SetInput (const DataObjectIdentifierType &key, DataObject *input) |
|
virtual void | SetNthInput (DataObjectPointerArraySizeType idx, DataObject *input) |
|
virtual void | SetNthOutput (DataObjectPointerArraySizeType idx, DataObject *output) |
|
void | SetNumberOfIndexedInputs (DataObjectPointerArraySizeType num) |
|
void | SetNumberOfIndexedOutputs (DataObjectPointerArraySizeType num) |
|
virtual void | SetNumberOfRequiredInputs (DataObjectPointerArraySizeType) |
|
virtual void | SetNumberOfRequiredOutputs (DataObjectPointerArraySizeType _arg) |
|
virtual void | SetOutput (const DataObjectIdentifierType &name, DataObject *output) |
|
virtual void | SetPrimaryInput (DataObject *object) |
|
virtual void | SetPrimaryOutput (DataObject *object) |
|
void | SetRequiredInputNames (const NameArray &) |
|
virtual void | VerifyInputInformation () const |
|
virtual void | VerifyPreconditions () const |
|
| ~ProcessObject () override |
|
DataObject * | GetInput (DataObjectPointerArraySizeType idx) |
|
const DataObject * | GetInput (DataObjectPointerArraySizeType idx) const |
|
DataObject * | GetPrimaryInput () |
|
const DataObject * | GetPrimaryInput () const |
|
virtual void | SetPrimaryInputName (const DataObjectIdentifierType &key) |
|
virtual const char * | GetPrimaryInputName () const |
|
DataObject * | GetOutput (const DataObjectIdentifierType &key) |
|
const DataObject * | GetOutput (const DataObjectIdentifierType &key) const |
|
virtual void | SetPrimaryOutputName (const DataObjectIdentifierType &key) |
|
virtual const char * | GetPrimaryOutputName () const |
|
DataObject * | GetOutput (DataObjectPointerArraySizeType i) |
|
const DataObject * | GetOutput (DataObjectPointerArraySizeType i) const |
|
DataObject * | GetPrimaryOutput () |
|
const DataObject * | GetPrimaryOutput () const |
|
virtual bool | GetThreaderUpdateProgress () const |
|
virtual void | ThreaderUpdateProgressOn () |
|
virtual void | ThreaderUpdateProgressOff () |
|
virtual void | SetThreaderUpdateProgress (bool arg) |
|
| Object () |
|
bool | PrintObservers (std::ostream &os, Indent indent) const |
|
virtual void | SetTimeStamp (const TimeStamp &timeStamp) |
|
| ~Object () override |
|
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 () |
|