18 #ifndef itkSyNImageRegistrationMethod_h
19 #define itkSyNImageRegistrationMethod_h
66 template<
typename TFixedImage,
typename TMovingImage,
typename TOutputTransform =
67 DisplacementFieldTransform<double, TFixedImage::ImageDimension>,
68 typename TVirtualImage = TFixedImage,
69 typename TPointSet = PointSet<unsigned int, TFixedImage::ImageDimension> >
79 TVirtualImage, TPointSet>;
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 );
209 void PrintSelf( std::ostream & os,
Indent indent )
const override;
212 void GenerateData()
override;
215 virtual void StartOptimization();
221 void InitializeRegistrationAtEachLevel(
const SizeValueType )
override;
241 unsigned int m_ConvergenceWindowSize{ 10 };
244 bool m_DownsampleImagesForMetricDerivatives{
true };
245 bool m_AverageMidPointGradients{
false };
248 RealType m_GaussianSmoothingVarianceForTheUpdateField{ 3.0 };
249 RealType m_GaussianSmoothingVarianceForTheTotalField{ 0.5 };
253 #ifndef ITK_MANUAL_INSTANTIATION
254 #include "itkSyNImageRegistrationMethod.hxx"
TMovingImage MovingImageType
Implementation of an image mask as spatial object.
Light weight base class for most itk classes.
std::vector< FixedImageMaskConstPointer > FixedImageMasksContainerType
typename ImageMetricType::Pointer ImageMetricPointer
typename OutputTransformType::DerivativeType DerivativeType
unsigned long SizeValueType
This class takes one ore more ObjectToObject metrics and assigns weights to their derivatives to comp...
Computes similarity between two point sets.
std::vector< MovingImageConstPointer > MovingImagesContainerType
TVirtualImage VirtualImageType
typename ImageMetricType::FixedImageMaskType FixedImageMaskType
NumberOfIterationsArrayType m_NumberOfIterationsPerLevel
typename VirtualImageBaseType::ConstPointer VirtualImageBaseConstPointer
typename PointSetType::Pointer PointSetPointer
Base class for all object-to-object similarlity metrics added in ITKv4.
typename DisplacementFieldType::PixelType DisplacementVectorType
typename MovingImageType::Pointer MovingImagePointer
typename Superclass::MeasureType MeasureType
typename ImageMaskSpatialObjectType::ImageType MovingMaskImageType
Interface method for the performing greedy SyN image registration.
std::vector< MovingImageMaskConstPointer > MovingImageMasksContainerType
std::vector< PointSetConstPointer > PointSetsContainerType
typename CompositeTransformType::TransformType TransformBaseType
typename ImageMetricType::MeasureType MeasureType
typename DisplacementFieldTransformType::Pointer DisplacementFieldTransformPointer
Decorates any subclass of itkObject with a DataObject API.
typename DerivativeType::ValueType DerivativeValueType
typename DecoratedOutputTransformType::Pointer DecoratedOutputTransformPointer
std::vector< FixedImageConstPointer > FixedImagesContainerType
TOutputTransform OutputTransformType
typename FixedImageType::Pointer FixedImagePointer
typename DisplacementFieldType::Pointer DisplacementFieldPointer
Base class for templated image classes.
typename ImageMetricType::MovingImageMaskType MovingImageMaskType
typename ImageMaskSpatialObjectType::ImageType FixedMaskImageType
Control indentation during Print() invocation.
typename OutputTransformType::ScalarType RealType
typename Superclass::ImageType ImageType
Interface method for the current registration framework.
TFixedImage FixedImageType
typename OutputTransformType::DisplacementFieldType DisplacementFieldType
typename MetricType::Pointer MetricPointer
typename OutputTransformType::Pointer OutputTransformPointer