18#ifndef itkCurvatureRegistrationFilter_h
19#define itkCurvatureRegistrationFilter_h
24#if !defined(ITK_USE_CUFFTW) && (defined(ITK_USE_FFTWF) || defined(ITK_USE_FFTWD))
97template <
typename TFixedImage,
98 typename TMovingImage,
99 typename TDisplacementField,
100 typename TImageForceFunction = MeanSquareRegistrationFunction<TFixedImage, TMovingImage, TDisplacementField>>
120 using typename Superclass::TimeStepType;
123 using typename Superclass::FixedImageType;
124 using typename Superclass::FixedImagePointer;
125 static constexpr unsigned int ImageDimension = FixedImageType::ImageDimension;
128 using typename Superclass::MovingImageType;
129 using typename Superclass::MovingImagePointer;
132 using typename Superclass::DisplacementFieldType;
133 using typename Superclass::DisplacementFieldPointer;
139# if defined(ITK_USE_FFTWD)
143# if defined(ITK_USE_FFTWF)
145# warning "Using single precision for FFT computations!"
154 using typename Superclass::FiniteDifferenceFunctionType;
163 m_ConstraintWeight = w;
196 unsigned int m_FixedImageDimensions[ImageDimension]{};
201 float m_ConstraintWeight{};
203 fftw_plan m_PlanForwardDCT{};
204 fftw_plan m_PlanBackwardDCT{};
212# ifndef ITK_MANUAL_INSTANTIATION
213# include "itkCurvatureRegistrationFilter.hxx"
Deformably register two images using the fast curvature algorithm.
void PrintSelf(std::ostream &os, Indent indent) const override
void SetConstraintWeight(const float w)
TImageForceFunction RegistrationFunctionType
typename DisplacementFieldPixelType::ValueType DisplacementFieldComponentType
typename DisplacementFieldComponentImageType::Pointer DisplacementFieldComponentImagePointer
virtual double GetMetric() const
~CurvatureRegistrationFilter() override
CurvatureRegistrationFilter()
void Initialize() override
typename TDisplacementField::PixelType DisplacementFieldPixelType
void SetTimeStep(const TimeStepType ts)
void ApplyUpdate(const TimeStepType &dt) override
typename FiniteDifferenceFunctionType::TimeStepType TimeStepType
Templated n-dimensional image class.
Control indentation during Print() invocation.
Light weight base class for most itk classes.
SmartPointer< Self > Pointer
constexpr unsigned int Dimension
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....