18#ifndef itkDistancePreservingRigidityPenaltyTerm_h
19#define itkDistancePreservingRigidityPenaltyTerm_h
28#include "itkNeighborhood.h"
29#include "itkImageRegionIterator.h"
30#include "itkNeighborhoodOperatorImageFilter.h"
31#include "itkNeighborhoodIterator.h"
33#include "itkImageRegionIterator.h"
34#include "itkMultiResolutionPyramidImageFilter.h"
75template <
class TFixedImage,
class TScalarType>
94 using typename Superclass::CoordinateRepresentationType;
95 using typename Superclass::MovingImageType;
96 using typename Superclass::MovingImagePixelType;
98 using typename Superclass::MovingImageConstPointer;
99 using typename Superclass::FixedImageType;
101 using typename Superclass::FixedImageConstPointer;
102 using typename Superclass::FixedImageRegionType;
104 using typename Superclass::TransformPointer;
105 using typename Superclass::InputPointType;
106 using typename Superclass::OutputPointType;
107 using typename Superclass::TransformParametersType;
108 using typename Superclass::TransformJacobianType;
109 using typename Superclass::InterpolatorType;
110 using typename Superclass::InterpolatorPointer;
111 using typename Superclass::RealType;
112 using typename Superclass::GradientPixelType;
113 using typename Superclass::GradientImageType;
114 using typename Superclass::GradientImagePointer;
115 using typename Superclass::GradientImageFilterType;
116 using typename Superclass::GradientImageFilterPointer;
117 using typename Superclass::FixedImageMaskType;
118 using typename Superclass::FixedImageMaskPointer;
119 using typename Superclass::MovingImageMaskType;
120 using typename Superclass::MovingImageMaskPointer;
121 using typename Superclass::MeasureType;
122 using typename Superclass::DerivativeType;
124 using typename Superclass::ParametersType;
157 GetValue(
const ParametersType & parameters)
const override;
161 GetDerivative(
const ParametersType & parameters, DerivativeType & derivative)
const override;
167 DerivativeType & derivative)
const override;
201 itkGetConstMacro(NumberOfRigidGrids,
unsigned int);
212 PrintSelf(std::ostream & os, Indent indent)
const override;
232#ifndef ITK_MANUAL_INSTANTIATION
233# include "itkDistancePreservingRigidityPenaltyTerm.hxx"
typename ImageSamplerType::OutputVectorContainerPointer ImageSampleContainerPointer
typename FixedImageType::PixelType FixedImagePixelType
typename DerivativeType::ValueType DerivativeValueType
typename ImageSamplerType::OutputVectorContainerType ImageSampleContainerType
typename MovingImageType::Pointer MovingImagePointer
typename FixedImageType::Pointer FixedImagePointer
PenaltyGridImagePointer m_PenaltyGridImage
typename BSplineTransformType::SpacingType GridSpacingType
typename BSplineKnotImageType::RegionType BSplineKnotImageRegionType
typename BSplineTransformType::Pointer BSplineTransformPointer
typename PenaltyGridImageType::RegionType PenaltyGridImageRegionType
ITK_DISALLOW_COPY_AND_MOVE(DistancePreservingRigidityPenaltyTerm)
~DistancePreservingRigidityPenaltyTerm() override=default
typename BSplineKnotImageType::Pointer BSplineKnotImagePointer
itkStaticConstMacro(ImageDimension, unsigned int, FixedImageType::ImageDimension)
BSplineKnotImagePointer m_BSplineKnotImage
typename SegmentedImageType::Pointer SegmentedImagePointer
itkStaticConstMacro(FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
itkGetModifiableObjectMacro(SegmentedImage, SegmentedImageType)
void GetDerivative(const ParametersType ¶meters, DerivativeType &derivative) const override
BSplineTransformPointer m_BSplineTransform
itkGetModifiableObjectMacro(SampledSegmentedImage, SegmentedImageType)
typename PenaltyGridImageType::Pointer PenaltyGridImagePointer
SmartPointer< const Self > ConstPointer
itkStaticConstMacro(MovingImageDimension, unsigned int, FixedImageType::ImageDimension)
void PrintSelf(std::ostream &os, Indent indent) const override
SegmentedImagePointer m_SampledSegmentedImage
SegmentedImagePointer m_SegmentedImage
DistancePreservingRigidityPenaltyTerm()
typename BSplineTransformType::ImageType CoefficientImageType
void GetValueAndDerivative(const ParametersType ¶meters, MeasureType &value, DerivativeType &derivative) const override
MeasureType m_RigidityPenaltyTermValue
typename CoefficientImageType::Pointer CoefficientImagePointer
typename CoefficientImageType::SpacingType CoefficientImageSpacingType
void Initialize() override
MeasureType GetValue(const ParametersType ¶meters) const override
unsigned int m_NumberOfRigidGrids
typename SegmentedImageType::RegionType SegmentedImageRegionType