38#ifndef itkMultiResolutionImageRegistrationMethod2_h
39#define itkMultiResolutionImageRegistrationMethod2_h
41#include "itkProcessObject.h"
43#include "itkSingleValuedNonLinearOptimizer.h"
44#include "itkMultiResolutionPyramidImageFilter.h"
45#include "itkNumericTraits.h"
46#include "itkDataObjectDecorator.h"
96template <
typename TFixedImage,
typename TMovingImage>
207 itkSetClampMacro(NumberOfLevels,
unsigned long, 1, NumericTraits<unsigned long>::max());
208 itkGetConstMacro(NumberOfLevels,
unsigned long);
211 itkGetConstMacro(CurrentLevel,
unsigned long);
222 itkGetConstReferenceMacro(InitialTransformParametersOfNextLevel,
ParametersType);
237 MakeOutput(ProcessObject::DataObjectPointerArraySizeType idx)
override;
254 PrintSelf(std::ostream & os, Indent indent)
const override;
274 itkSetMacro(CurrentLevel,
unsigned long);
285 using ProcessObject::MakeOutput;
289 OptimizerType::Pointer m_Optimizer{};
304 unsigned long m_NumberOfLevels{};
305 unsigned long m_CurrentLevel{};
310#ifndef ITK_MANUAL_INSTANTIATION
311# include "itkMultiResolutionImageRegistrationMethod2.hxx"
An extension of the ITK ImageToImageMetric. It is the intended base class for all elastix metrics.
SmartPointer< Self > Pointer
Base class for multi-resolution image registration methods.
TMovingImage MovingImageType
typename DataObject::Pointer DataObjectPointer
typename MovingImageType::ConstPointer MovingImageConstPointer
itkGetModifiableObjectMacro(Interpolator, InterpolatorType)
typename MetricType::InterpolatorType InterpolatorType
typename TransformOutputType::ConstPointer TransformOutputConstPointer
TFixedImage FixedImageType
typename FixedImageType::ConstPointer FixedImageConstPointer
itkGetModifiableObjectMacro(Optimizer, OptimizerType)
MultiResolutionPyramidImageFilter< FixedImageType, FixedImageType > FixedImagePyramidType
typename FixedImagePyramidType::Pointer FixedImagePyramidPointer
typename TransformType::Pointer TransformPointer
typename MetricType::Pointer MetricPointer
typename MovingImagePyramidType::Pointer MovingImagePyramidPointer
itkGetModifiableObjectMacro(MovingImagePyramid, MovingImagePyramidType)
typename InterpolatorType::Pointer InterpolatorPointer
typename FixedImageType::RegionType FixedImageRegionType
std::vector< FixedImageRegionType > FixedImageRegionPyramidType
itkGetModifiableObjectMacro(Metric, MetricType)
virtual void StartRegistration()
MultiResolutionImageRegistrationMethod2()
virtual void Initialize()
const TransformOutputType * GetOutput() const
~MultiResolutionImageRegistrationMethod2() override=default
virtual void StopRegistration()
ModifiedTimeType GetMTime() const override
typename MetricType::TransformParametersType ParametersType
virtual void PreparePyramids()
DataObjectPointer MakeOutput(ProcessObject::DataObjectPointerArraySizeType idx) override
itkGetModifiableObjectMacro(FixedImagePyramid, FixedImagePyramidType)
DataObjectDecorator< TransformType > TransformOutputType
SmartPointer< const Self > ConstPointer
typename MetricType::AdvancedTransformType TransformType
void PrintSelf(std::ostream &os, Indent indent) const override
typename TransformOutputType::Pointer TransformOutputPointer
itkGetModifiableObjectMacro(Transform, TransformType)
MultiResolutionPyramidImageFilter< MovingImageType, MovingImageType > MovingImagePyramidType
void GenerateData() override
Class for multi-resolution image registration methods.
typename FixedImageType::RegionType FixedImageRegionType