18 #ifndef itkLevelSetMotionRegistrationFunction_h
19 #define itkLevelSetMotionRegistrationFunction_h
54 template<
typename TFixedImage,
typename TMovingImage,
typename TDisplacementField >
66 TMovingImage, TDisplacementField >;
95 static constexpr
unsigned int ImageDimension = Superclass::ImageDimension;
123 { m_MovingImageInterpolator = ptr; }
127 {
return m_MovingImageInterpolator; }
131 TimeStepType ComputeGlobalTimeStep(
void *GlobalData)
const override;
139 global->m_SumOfSquaredDifference = 0.0;
140 global->m_NumberOfPixelsProcessed = 0L;
141 global->m_SumOfSquaredChange = 0;
147 void ReleaseGlobalDataPointer(
void *GlobalData)
const override;
150 void InitializeIteration()
override;
154 PixelType ComputeUpdate(
const NeighborhoodType & neighborhood,
156 const FloatOffsetType & offset =
157 FloatOffsetType(0.0) )
override;
167 {
return m_RMSChange; }
175 virtual void SetAlpha(
double);
177 virtual double GetAlpha()
const;
183 virtual void SetIntensityDifferenceThreshold(
double);
185 virtual double GetIntensityDifferenceThreshold()
const;
189 virtual void SetGradientMagnitudeThreshold(
double);
191 virtual double GetGradientMagnitudeThreshold()
const;
195 virtual void SetGradientSmoothingStandardDeviations(
double);
197 virtual double GetGradientSmoothingStandardDeviations()
const;
202 void SetUseImageSpacing(
bool);
204 bool GetUseImageSpacing()
const;
209 void PrintSelf(std::ostream & os,
Indent indent)
const override;
264 #ifndef ITK_MANUAL_INSTANTIATION
265 #include "itkLevelSetMotionRegistrationFunction.hxx"
void * GetGlobalDataPointer() const override
typename FixedImageType::SizeType SizeType
Light weight base class for most itk classes.
Define numeric traits for std::vector.
double m_GradientMagnitudeThreshold
unsigned long SizeValueType
typename Superclass::FloatOffsetType FloatOffsetType
InterpolatorType * GetMovingImageInterpolator()
double m_SumOfSquaredChange
typename Superclass::TimeStepType TimeStepType
std::mutex m_MetricCalculationLock
Const version of NeighborhoodIterator, defining iteration of a local N-dimensional neighborhood of pi...
virtual double GetMetric() const
typename MovingImageSmoothingFilterType::Pointer MovingImageSmoothingFilterPointer
typename Superclass::RadiusType RadiusType
typename ImageType::PixelType PixelType
InterpolatorPointer m_SmoothMovingImageInterpolator
MovingImageSmoothingFilterPointer m_MovingImageSmoothingFilter
typename ConstNeighborhoodIterator< TDisplacementField >::RadiusType RadiusType
InterpolatorPointer m_MovingImageInterpolator
A templated class holding a n-Dimensional vector.
typename FixedImageType::SpacingType SpacingType
ImageBaseType::SizeType SizeType
ImageBaseType::IndexType IndexType
PointType m_FixedImageOrigin
virtual double GetRMSChange() const
Computes the smoothing of an image by convolution with the Gaussian kernels implemented as IIR filter...
double m_GradientSmoothingStandardDeviations
typename InterpolatorType::PointType PointType
typename Superclass::PixelType PixelType
typename FixedImageType::IndexType IndexType
void SetMovingImageInterpolator(InterpolatorType *ptr)
Linearly interpolate an image at specified positions.
Base class for all image interpolaters.
typename Superclass::NeighborhoodType NeighborhoodType
SpacingType m_FixedImageSpacing
double m_SumOfSquaredDifference
double m_SumOfSquaredDifference
Control indentation during Print() invocation.
ImageBaseType::PointType PointType
typename MovingImageType::SpacingType MovingSpacingType
SizeValueType m_NumberOfPixelsProcessed
typename InterpolatorType::Pointer InterpolatorPointer
SizeValueType m_NumberOfPixelsProcessed
A templated class holding a n-Dimensional covariant vector.
double m_SumOfSquaredChange
double m_IntensityDifferenceThreshold