89 using typename Superclass::CoordinateRepresentationType;
90 using typename Superclass::MovingImageType;
91 using typename Superclass::MovingImagePixelType;
93 using typename Superclass::MovingImageConstPointer;
94 using typename Superclass::FixedImageType;
96 using typename Superclass::FixedImageConstPointer;
97 using typename Superclass::FixedImageRegionType;
99 using typename Superclass::TransformPointer;
100 using typename Superclass::InputPointType;
101 using typename Superclass::OutputPointType;
102 using typename Superclass::TransformParametersType;
103 using typename Superclass::TransformJacobianType;
104 using typename Superclass::InterpolatorType;
105 using typename Superclass::InterpolatorPointer;
106 using typename Superclass::RealType;
107 using typename Superclass::GradientPixelType;
108 using typename Superclass::GradientImageType;
109 using typename Superclass::GradientImagePointer;
110 using typename Superclass::GradientImageFilterType;
111 using typename Superclass::GradientImageFilterPointer;
112 using typename Superclass::FixedImageMaskType;
113 using typename Superclass::FixedImageMaskPointer;
114 using typename Superclass::MovingImageMaskType;
115 using typename Superclass::MovingImageMaskPointer;
116 using typename Superclass::MeasureType;
117 using typename Superclass::DerivativeType;
119 using typename Superclass::ParametersType;
162 using NOIFType = NeighborhoodOperatorImageFilter<CoefficientImageType, CoefficientImageType>;
164 using RadiusType =
typename NeighborhoodIteratorType::RadiusType;
176 using DilateFilterType = GrayscaleDilateImageFilter<RigidityImageType, RigidityImageType, StructuringElementType>;
185 GetValue(
const ParametersType & parameters)
const override;
189 GetDerivative(
const ParametersType & parameters, DerivativeType & derivative)
const override;
199 DerivativeType & derivative)
const override;
210 itkSetClampMacro(LinearityConditionWeight,
ScalarType, 0.0, NumericTraits<ScalarType>::max());
214 itkSetClampMacro(OrthonormalityConditionWeight,
ScalarType, 0.0, NumericTraits<ScalarType>::max());
218 itkSetClampMacro(PropernessConditionWeight,
ScalarType, 0.0, NumericTraits<ScalarType>::max());
222 itkSetMacro(UseLinearityCondition,
bool);
225 itkSetMacro(UseOrthonormalityCondition,
bool);
228 itkSetMacro(UsePropernessCondition,
bool);
233 itkSetMacro(CalculateLinearityCondition,
bool);
238 itkSetMacro(CalculateOrthonormalityCondition,
bool);
243 itkSetMacro(CalculatePropernessCondition,
bool);
246 itkGetConstReferenceMacro(LinearityConditionValue, MeasureType);
249 itkGetConstReferenceMacro(OrthonormalityConditionValue, MeasureType);
252 itkGetConstReferenceMacro(PropernessConditionValue, MeasureType);
255 itkGetConstReferenceMacro(LinearityConditionGradientMagnitude, MeasureType);
258 itkGetConstReferenceMacro(OrthonormalityConditionGradientMagnitude, MeasureType);
261 itkGetConstReferenceMacro(PropernessConditionGradientMagnitude, MeasureType);
267 itkSetMacro(DilateRigidityImages,
bool);
270 itkSetClampMacro(DilationRadiusMultiplier,
271 CoordinateRepresentationType,
273 NumericTraits<CoordinateRepresentationType>::max());
282 itkSetMacro(UseFixedRigidityImage,
bool);
285 itkSetMacro(UseMovingRigidityImage,
bool);
299 PrintSelf(std::ostream & os, Indent indent)
const override;
309 const std::string & whichF,
310 const unsigned int WhichDimension,