18 #ifndef itkTimeVaryingBSplineVelocityFieldImageRegistrationMethod_h
19 #define itkTimeVaryingBSplineVelocityFieldImageRegistrationMethod_h
86 template <
typename TFixedImage,
87 typename TMovingImage,
88 typename TOutputTransform = TimeVaryingBSplineVelocityFieldTransform<double, TFixedImage::ImageDimension>,
89 typename TVirtualImage = TFixedImage,
90 typename TPointSet = PointSet<unsigned int, TFixedImage::ImageDimension>>
107 static constexpr
unsigned int ImageDimension = TFixedImage::ImageDimension;
115 using typename Superclass::FixedImagesContainerType;
118 using typename Superclass::MovingImagesContainerType;
122 using typename Superclass::PointSetsContainerType;
125 using typename Superclass::ImageMetricType;
131 using typename Superclass::VirtualImageBaseType;
132 using typename Superclass::VirtualImageBaseConstPointer;
134 using typename Superclass::MetricType;
135 using typename Superclass::MultiMetricType;
137 using typename Superclass::PointSetMetricType;
141 using typename Superclass::FixedImageMaskType;
143 using typename Superclass::FixedImageMasksContainerType;
144 using typename Superclass::MovingImageMaskType;
146 using typename Superclass::MovingImageMasksContainerType;
148 using typename Superclass::InitialTransformType;
151 using RealType =
typename OutputTransformType::ScalarType;
160 typename OutputTransformType::TimeVaryingVelocityFieldControlPointLatticeType;
162 typename OutputTransformType::TimeVaryingVelocityFieldControlPointLatticePointer;
165 typename OutputTransformType::TimeVaryingVelocityFieldControlPointLatticePointer;
168 using typename Superclass::CompositeTransformType;
171 using typename Superclass::DecoratedOutputTransformType;
189 itkSetMacro(LearningRate,
RealType);
190 itkGetConstMacro(LearningRate,
RealType);
199 itkSetMacro(ConvergenceThreshold,
RealType);
200 itkGetConstMacro(ConvergenceThreshold,
RealType);
204 itkSetMacro(ConvergenceWindowSize,
unsigned int);
205 itkGetConstMacro(ConvergenceWindowSize,
unsigned int);
217 PrintSelf(std::ostream & os,
Indent indent)
const override;
221 GenerateData()
override;
235 AttachMetricGradientPointSetAtSpecificTimePoint(
const RealType,
252 unsigned int m_ConvergenceWindowSize{ 10 };
262 #ifndef ITK_MANUAL_INSTANTIATION
263 # include "itkTimeVaryingBSplineVelocityFieldImageRegistrationMethod.hxx"