18#ifndef itkBSplineSyNImageRegistrationMethod_h
19#define itkBSplineSyNImageRegistrationMethod_h
45template <
typename TFixedImage,
46 typename TMovingImage,
47 typename TOutputTransform =
48 BSplineSmoothingOnUpdateDisplacementFieldTransform<double, TFixedImage::ImageDimension>,
49 typename TVirtualImage = TFixedImage,
50 typename TPointSet = PointSet<unsigned int, TFixedImage::ImageDimension>>
67 static constexpr unsigned int ImageDimension = TFixedImage::ImageDimension;
75 using typename Superclass::FixedImagesContainerType;
78 using typename Superclass::MovingImagesContainerType;
80 using typename Superclass::PointSetType;
81 using typename Superclass::PointSetsContainerType;
84 using typename Superclass::ImageMetricType;
88 using typename Superclass::ImageMaskSpatialObjectType;
90 using typename Superclass::FixedImageMaskType;
92 using typename Superclass::FixedImageMasksContainerType;
93 using typename Superclass::MovingImageMaskType;
95 using typename Superclass::MovingImageMasksContainerType;
98 using typename Superclass::VirtualImageBaseType;
99 using typename Superclass::VirtualImageBaseConstPointer;
101 using typename Superclass::MultiMetricType;
102 using typename Superclass::MetricType;
104 using typename Superclass::PointSetMetricType;
106 using typename Superclass::NumberOfIterationsArrayType;
108 using typename Superclass::InitialTransformType;
111 using RealType =
typename OutputTransformType::ScalarType;
123 using typename Superclass::CompositeTransformType;
124 using typename Superclass::DisplacementFieldTransformType;
125 using typename Superclass::DisplacementFieldTransformPointer;
128 using typename Superclass::DecoratedOutputTransformType;
160#ifndef ITK_MANUAL_INSTANTIATION
161# include "itkBSplineSyNImageRegistrationMethod.hxx"
Interface method for the performing greedy B-spline SyN image registration.
typename CompositeTransformType::TransformType TransformBaseType
typename BSplineFilterType::InputPointSetType BSplinePointSetType
typename ImageMaskSpatialObjectType::ImageType MaskImageType
typename DerivativeType::ValueType DerivativeValueType
typename MetricType::Pointer MetricPointer
typename ImageMetricType::MeasureType MeasureType
TOutputTransform OutputTransformType
typename ImageMaskSpatialObjectType::ImageType FixedMaskImageType
typename OutputTransformType::ScalarType RealType
typename OutputTransformType::DerivativeType DerivativeType
BSplineSyNImageRegistrationMethod()=default
virtual DisplacementFieldPointer BSplineSmoothDisplacementField(const DisplacementFieldType *, const ArrayType &, const WeightedMaskImageType *, const BSplinePointSetType *)
DisplacementFieldPointer ComputeUpdateField(const FixedImagesContainerType, const PointSetsContainerType, const TransformBaseType *, const MovingImagesContainerType, const PointSetsContainerType, const TransformBaseType *, const FixedImageMasksContainerType, const MovingImageMasksContainerType, MeasureType &) override
typename ImageMetricType::Pointer ImageMetricPointer
typename ImageMaskSpatialObjectType::ImageType MovingMaskImageType
typename Superclass::VirtualImageType VirtualImageType
typename OutputTransformType::DisplacementFieldType DisplacementFieldType
typename MovingImageType::Pointer MovingImagePointer
typename BSplineFilterType::RealImageType WeightedMaskImageType
typename OutputTransformType::Pointer OutputTransformPointer
~BSplineSyNImageRegistrationMethod() override=default
typename DisplacementFieldType::Pointer DisplacementFieldPointer
typename BSplineFilterType::ArrayType ArrayType
void InitializeRegistrationAtEachLevel(const SizeValueType) override
void StartOptimization() override
TFixedImage FixedImageType
TMovingImage MovingImageType
typename FixedImageType::Pointer FixedImagePointer
typename DisplacementFieldType::PixelType DisplacementVectorType
typename DecoratedOutputTransformType::Pointer DecoratedOutputTransformPointer
Class which takes a dense displacement field image and/or a set of points with associated displacemen...
typename BSplineFilterType::ArrayType ArrayType
TInputPointSet InputPointSetType
std::vector< MovingImageMaskConstPointer > MovingImageMasksContainerType
std::vector< FixedImageMaskConstPointer > FixedImageMasksContainerType
std::vector< PointSetConstPointer > PointSetsContainerType
std::vector< MovingImageConstPointer > MovingImagesContainerType
std::vector< FixedImageConstPointer > FixedImagesContainerType
Templated n-dimensional image class.
Light weight base class for most itk classes.
Interface method for the performing greedy SyN image registration.
SmartPointer< Self > Pointer
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
unsigned long SizeValueType