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;
119 using typename Superclass::MeasureType;
120 using typename Superclass::DerivativeType;
122 using typename Superclass::ParametersType;
155 GetValue(
const ParametersType & parameters)
const override;
159 GetDerivative(
const ParametersType & parameters, DerivativeType & derivative)
const override;
165 DerivativeType & derivative)
const override;
199 itkGetConstMacro(NumberOfRigidGrids,
unsigned int);
210 PrintSelf(std::ostream & os, Indent indent)
const override;
216 mutable MeasureType m_RigidityPenaltyTermValue{};
223 unsigned int m_NumberOfRigidGrids{};
230#ifndef ITK_MANUAL_INSTANTIATION
231# include "itkDistancePreservingRigidityPenaltyTerm.hxx"
typename ImageSamplerType::OutputVectorContainerPointer ImageSampleContainerPointer
typename FixedImageType::PixelType FixedImagePixelType
typename DerivativeType::ValueType DerivativeValueType
typename ImageSamplerType::OutputVectorContainerType ImageSampleContainerType
typename MovingImageType::Pointer MovingImagePointer
ImageMaskSpatialObject< Self::FixedImageDimension > FixedImageMaskType
typename FixedImageType::Pointer FixedImagePointer
SmartPointer< MovingImageMaskType > MovingImageMaskPointer
SmartPointer< FixedImageMaskType > FixedImageMaskPointer
ImageMaskSpatialObject< Self::MovingImageDimension > MovingImageMaskType
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)
Image< signed short, Self::MovingImageDimension > BSplineKnotImageType
typename SegmentedImageType::Pointer SegmentedImagePointer
itkStaticConstMacro(FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
itkGetModifiableObjectMacro(SegmentedImage, SegmentedImageType)
void GetDerivative(const ParametersType ¶meters, DerivativeType &derivative) const override
itkGetModifiableObjectMacro(SampledSegmentedImage, SegmentedImageType)
typename PenaltyGridImageType::Pointer PenaltyGridImagePointer
SmartPointer< const Self > ConstPointer
AdvancedBSplineDeformableTransform< ScalarType, FixedImageDimension, 3 > BSplineTransformType
Image< signed short, Self::MovingImageDimension > SegmentedImageType
itkStaticConstMacro(MovingImageDimension, unsigned int, FixedImageType::ImageDimension)
void PrintSelf(std::ostream &os, Indent indent) const override
DistancePreservingRigidityPenaltyTerm()
typename BSplineTransformType::ImageType CoefficientImageType
void GetValueAndDerivative(const ParametersType ¶meters, MeasureType &value, DerivativeType &derivative) const override
AdvancedCombinationTransform< ScalarType, FixedImageDimension > CombinationTransformType
typename CoefficientImageType::Pointer CoefficientImagePointer
typename CoefficientImageType::SpacingType CoefficientImageSpacingType
void Initialize() override
MeasureType GetValue(const ParametersType ¶meters) const override
Image< signed short, Self::MovingImageDimension > PenaltyGridImageType
typename SegmentedImageType::RegionType SegmentedImageRegionType