18 #ifndef itkBSplineSyNImageRegistrationMethod_h
19 #define itkBSplineSyNImageRegistrationMethod_h
45 template <
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;
137 StartOptimization()
override;
140 InitializeRegistrationAtEachLevel(
const SizeValueType)
override;
160 #ifndef ITK_MANUAL_INSTANTIATION
161 # include "itkBSplineSyNImageRegistrationMethod.hxx"