18#ifndef itkMultiInputMultiResolutionImageRegistrationMethodBase_h
19#define itkMultiInputMultiResolutionImageRegistrationMethodBase_h
28#define itkSimpleSetMacro(_name, _type) \
29 virtual void Set##_name(_type _arg) { this->Set##_name(_arg, 0); }
31#define elxOverrideSimpleSetMacro(_name, _type) \
32 void Set##_name(_type _arg) override { this->Set##_name(_arg, 0); }
35#define itkSetNumberOfMacro(_name) \
36 virtual void SetNumberOf##_name##s(unsigned int _arg) \
38 if (this->m_##_name##s.size() != _arg) \
40 this->m_##_name##s.resize(_arg); \
46#define itkGetNumberOfMacro(_name) \
47 virtual unsigned int GetNumberOf##_name##s() const { return this->m_##_name##s.size(); }
72template <
typename TFixedImage,
typename TMovingImage>
92 using typename Superclass::FixedImageType;
93 using typename Superclass::FixedImageConstPointer;
94 using typename Superclass::FixedImageRegionType;
95 using typename Superclass::FixedImageRegionPyramidType;
96 using typename Superclass::MovingImageType;
97 using typename Superclass::MovingImageConstPointer;
99 using typename Superclass::MetricType;
100 using typename Superclass::MetricPointer;
101 using typename Superclass::TransformType;
102 using typename Superclass::TransformPointer;
103 using typename Superclass::InterpolatorType;
104 using typename Superclass::InterpolatorPointer;
105 using typename Superclass::OptimizerType;
107 using typename Superclass::FixedImagePyramidType;
108 using typename Superclass::FixedImagePyramidPointer;
109 using typename Superclass::MovingImagePyramidType;
110 using typename Superclass::MovingImagePyramidPointer;
112 using typename Superclass::TransformOutputType;
113 using typename Superclass::TransformOutputPointer;
114 using typename Superclass::TransformOutputConstPointer;
116 using typename Superclass::ParametersType;
117 using typename Superclass::DataObjectPointer;
150 return this->GetFixedImage(0);
166 return this->GetFixedImageRegion(0);
182 return this->GetFixedImagePyramid(0);
198 return this->GetMovingImage(0);
214 return this->GetMovingImagePyramid(0);
230 return this->GetInterpolator(0);
246 return this->GetFixedImageInterpolator(0);
274 PrintSelf(std::ostream & os, Indent indent)
const override;
324#undef itkSetNumberOfMacro
325#undef itkGetNumberOfMacro
326#undef elxOverrideSimpleSetMacro
328#ifndef ITK_MANUAL_INSTANTIATION
329# include "itkMultiInputMultiResolutionImageRegistrationMethodBase.hxx"
An extension of the ITK ImageToImageMetric. It is the intended base class for all elastix metrics.
Base class for multi-resolution image registration methods.
TMovingImage MovingImageType
typename MetricType::InterpolatorType InterpolatorType
TFixedImage FixedImageType
MultiResolutionPyramidImageFilter< FixedImageType, FixedImageType > FixedImagePyramidType
typename FixedImageType::RegionType FixedImageRegionType
SmartPointer< const Self > ConstPointer
MultiResolutionPyramidImageFilter< MovingImageType, MovingImageType > MovingImagePyramidType