18 #ifndef itkSyNImageRegistrationMethod_h
19 #define itkSyNImageRegistrationMethod_h
66 template <
typename TFixedImage,
67 typename TMovingImage,
68 typename TOutputTransform = DisplacementFieldTransform<double, TFixedImage::ImageDimension>,
69 typename TVirtualImage = TFixedImage,
70 typename TPointSet = PointSet<unsigned int, TFixedImage::ImageDimension>>
87 static constexpr
unsigned int ImageDimension = TFixedImage::ImageDimension;
129 using RealType =
typename OutputTransformType::ScalarType;
148 itkSetMacro(LearningRate,
RealType);
149 itkGetConstMacro(LearningRate,
RealType);
158 itkSetMacro(ConvergenceThreshold,
RealType);
159 itkGetConstMacro(ConvergenceThreshold,
RealType);
163 itkSetMacro(ConvergenceWindowSize,
unsigned int);
164 itkGetConstMacro(ConvergenceWindowSize,
unsigned int);
171 itkSetMacro(DownsampleImagesForMetricDerivatives,
bool);
172 itkGetConstMacro(DownsampleImagesForMetricDerivatives,
bool);
178 itkSetMacro(AverageMidPointGradients,
bool);
179 itkGetConstMacro(AverageMidPointGradients,
bool);
185 itkSetMacro(GaussianSmoothingVarianceForTheUpdateField,
RealType);
186 itkGetConstReferenceMacro(GaussianSmoothingVarianceForTheUpdateField,
RealType);
192 itkSetMacro(GaussianSmoothingVarianceForTheTotalField,
RealType);
193 itkGetConstReferenceMacro(GaussianSmoothingVarianceForTheTotalField,
RealType);
210 PrintSelf(std::ostream & os,
Indent indent)
const override;
214 GenerateData()
override;
225 InitializeRegistrationAtEachLevel(
const SizeValueType)
override;
260 RealType m_ConvergenceThreshold{ static_cast<RealType>(1.0
e-6) };
261 unsigned int m_ConvergenceWindowSize{ 10 };
264 bool m_DownsampleImagesForMetricDerivatives{
true };
265 bool m_AverageMidPointGradients{
false };
268 RealType m_GaussianSmoothingVarianceForTheUpdateField{ 3.0 };
269 RealType m_GaussianSmoothingVarianceForTheTotalField{ 0.5 };
273 #ifndef ITK_MANUAL_INSTANTIATION
274 # include "itkSyNImageRegistrationMethod.hxx"