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> >
85 itkStaticConstMacro(
ImageDimension,
unsigned int, TFixedImage::ImageDimension );
127 typedef typename OutputTransformType::ScalarType
RealType;
146 itkSetMacro( LearningRate, RealType );
147 itkGetConstMacro( LearningRate, RealType );
151 itkSetMacro( NumberOfIterationsPerLevel, NumberOfIterationsArrayType );
152 itkGetConstMacro( NumberOfIterationsPerLevel, NumberOfIterationsArrayType );
156 itkSetMacro( ConvergenceThreshold, RealType );
157 itkGetConstMacro( ConvergenceThreshold, RealType );
161 itkSetMacro( ConvergenceWindowSize,
unsigned int );
162 itkGetConstMacro( ConvergenceWindowSize,
unsigned int );
169 itkSetMacro( DownsampleImagesForMetricDerivatives,
bool );
170 itkGetConstMacro( DownsampleImagesForMetricDerivatives,
bool );
176 itkSetMacro( AverageMidPointGradients,
bool );
177 itkGetConstMacro( AverageMidPointGradients,
bool );
184 itkSetMacro( GaussianSmoothingVarianceForTheUpdateField, RealType );
185 itkGetConstReferenceMacro( GaussianSmoothingVarianceForTheUpdateField, RealType );
192 itkSetMacro( GaussianSmoothingVarianceForTheTotalField, RealType );
193 itkGetConstReferenceMacro( GaussianSmoothingVarianceForTheTotalField, RealType );
197 itkGetModifiableObjectMacro( FixedToMiddleTransform, OutputTransformType );
198 itkGetModifiableObjectMacro( MovingToMiddleTransform, OutputTransformType );
202 itkSetObjectMacro( FixedToMiddleTransform, OutputTransformType);
203 itkSetObjectMacro( MovingToMiddleTransform, OutputTransformType);
209 virtual void PrintSelf( std::ostream & os,
Indent indent )
const ITK_OVERRIDE;
223 virtual DisplacementFieldPointer
ComputeUpdateField( const FixedImagesContainerType, const PointSetsContainerType,
224 const TransformBaseType *, const MovingImagesContainerType, const PointSetsContainerType,
225 const TransformBaseType *, const FixedImageMasksContainerType, const MovingImageMasksContainerType, MeasureType & );
227 const PointSetsContainerType, const TransformBaseType *, const MovingImagesContainerType,
228 const PointSetsContainerType, const TransformBaseType *, const FixedImageMasksContainerType,
229 const MovingImageMasksContainerType, MeasureType & );
231 virtual DisplacementFieldPointer
ScaleUpdateField( const DisplacementFieldType * );
233 virtual DisplacementFieldPointer
InvertDisplacementField( const DisplacementFieldType *, const DisplacementFieldType * = ITK_NULLPTR );
249 void operator=( const Self & ) ITK_DELETE_FUNCTION;
256 #ifndef ITK_MANUAL_INSTANTIATION 257 #include "itkSyNImageRegistrationMethod.hxx" virtual DisplacementFieldPointer ComputeUpdateField(const FixedImagesContainerType, const PointSetsContainerType, const TransformBaseType *, const MovingImagesContainerType, const PointSetsContainerType, const TransformBaseType *, const FixedImageMasksContainerType, const MovingImageMasksContainerType, MeasureType &)
Superclass::MovingImageMasksContainerType MovingImageMasksContainerType
Transform< RealType, ImageDimension, ImageDimension > InitialTransformType
virtual ~SyNImageRegistrationMethod()
Implementation of an image mask as spatial object.
Superclass::PointSetMetricType PointSetMetricType
SmartPointer< Self > Pointer
Superclass::MeasureType MeasureType
Superclass::MovingImageMaskType MovingImageMaskType
Superclass::FixedImageMasksContainerType FixedImageMasksContainerType
Superclass::PointSetType PointSetType
virtual DisplacementFieldPointer ScaleUpdateField(const DisplacementFieldType *)
DisplacementFieldTransformType::Pointer DisplacementFieldTransformPointer
MovingImageType::Pointer MovingImagePointer
virtual void InitializeRegistrationAtEachLevel(const SizeValueType) override
OutputTransformType::Pointer OutputTransformPointer
TVirtualImage VirtualImageType
static const unsigned int ImageDimension
ImageMaskSpatialObjectType::ImageType FixedMaskImageType
Superclass::VirtualImageType VirtualImageType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes...
bool m_DownsampleImagesForMetricDerivatives
Superclass::InitialTransformType InitialTransformType
ImageMetricType::FixedImageMaskType FixedImageMaskType
Superclass::FixedImageMaskType FixedImageMaskType
NumberOfIterationsArrayType m_NumberOfIterationsPerLevel
Superclass::MetricType MetricType
Superclass::ImageMetricType ImageMetricType
DisplacementFieldTransform< RealType, ImageDimension > DisplacementFieldTransformType
unsigned long SizeValueType
OutputTransformPointer m_MovingToMiddleTransform
SyNImageRegistrationMethod()
DisplacementFieldType::PixelType DisplacementVectorType
TFixedImage FixedImageType
std::vector< MovingImageMaskConstPointer > MovingImageMasksContainerType
ImageToImageMetricv4< FixedImageType, MovingImageType, VirtualImageType, RealType > ImageMetricType
Superclass::VirtualImageBaseConstPointer VirtualImageBaseConstPointer
ImageMaskSpatialObject< ImageDimension > ImageMaskSpatialObjectType
Interface method for the performing greedy SyN image registration.
Superclass::VirtualImageBaseType VirtualImageBaseType
RealType m_GaussianSmoothingVarianceForTheTotalField
Superclass::CompositeTransformType CompositeTransformType
TOutputTransform OutputTransformType
std::vector< FixedImageMaskConstPointer > FixedImageMasksContainerType
Superclass::PointSetsContainerType PointSetsContainerType
Superclass::FixedImagesContainerType FixedImagesContainerType
ImageMetricType::MovingImageMaskType MovingImageMaskType
Superclass::MultiMetricType MultiMetricType
RealType m_ConvergenceThreshold
Superclass::MovingImagesContainerType MovingImagesContainerType
ImageMaskSpatialObjectType::ImageType MovingMaskImageType
ImageMetricType::Pointer ImageMetricPointer
TMovingImage MovingImageType
ImageRegistrationMethodv4< TFixedImage, TMovingImage, TOutputTransform, TVirtualImage, TPointSet > Superclass
virtual void GenerateData() override
ImageMetricType::MeasureType MeasureType
DisplacementFieldType::Pointer DisplacementFieldPointer
OutputTransformType::DerivativeType DerivativeType
std::vector< MovingImagePointer > MovingImagesContainerType
ObjectToObjectMetricBaseTemplate< RealType > MetricType
virtual DisplacementFieldPointer GaussianSmoothDisplacementField(const DisplacementFieldType *, const RealType)
unsigned int m_ConvergenceWindowSize
CompositeTransformType::TransformType TransformBaseType
OutputTransformType::DisplacementFieldType DisplacementFieldType
Superclass::DecoratedOutputTransformType DecoratedOutputTransformType
virtual DisplacementFieldPointer InvertDisplacementField(const DisplacementFieldType *, const DisplacementFieldType *=nullptr)
OutputTransformType::ScalarType RealType
DataObjectDecorator< OutputTransformType > DecoratedOutputTransformType
OutputTransformPointer m_FixedToMiddleTransform
FixedImageType::Pointer FixedImagePointer
Control indentation during Print() invocation.
virtual void PrintSelf(std::ostream &os, Indent indent) const override
DerivativeType::ValueType DerivativeValueType
std::vector< FixedImagePointer > FixedImagesContainerType
Array< SizeValueType > NumberOfIterationsArrayType
VirtualImageBaseType::ConstPointer VirtualImageBaseConstPointer
DecoratedOutputTransformType::Pointer DecoratedOutputTransformPointer
RealType m_GaussianSmoothingVarianceForTheUpdateField
Interface method for the current registration framework.
virtual void StartOptimization()
bool m_AverageMidPointGradients
PointSetToPointSetMetricv4< PointSetType, PointSetType, RealType > PointSetMetricType
MetricType::Pointer MetricPointer
CompositeTransform< RealType, ImageDimension > CompositeTransformType
SyNImageRegistrationMethod Self
PointSetType::Pointer PointSetPointer
SmartPointer< const Self > ConstPointer
std::vector< PointSetConstPointer > PointSetsContainerType
ObjectToObjectMultiMetricv4< ImageDimension, ImageDimension, VirtualImageType, RealType > MultiMetricType
ImageBase< ImageDimension > VirtualImageBaseType
Superclass::ImageType ImageType
virtual DisplacementFieldPointer ComputeMetricGradientField(const FixedImagesContainerType, const PointSetsContainerType, const TransformBaseType *, const MovingImagesContainerType, const PointSetsContainerType, const TransformBaseType *, const FixedImageMasksContainerType, const MovingImageMasksContainerType, MeasureType &)