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::TransformJacobianType;
103 using typename Superclass::InterpolatorType;
104 using typename Superclass::InterpolatorPointer;
105 using typename Superclass::RealType;
106 using typename Superclass::GradientPixelType;
107 using typename Superclass::GradientImageType;
108 using typename Superclass::GradientImagePointer;
113 using typename Superclass::MeasureType;
114 using typename Superclass::DerivativeType;
116 using typename Superclass::ParametersType;
159 using NOIFType = NeighborhoodOperatorImageFilter<CoefficientImageType, CoefficientImageType>;
161 using RadiusType =
typename NeighborhoodIteratorType::RadiusType;
173 using DilateFilterType = GrayscaleDilateImageFilter<RigidityImageType, RigidityImageType, StructuringElementType>;
182 GetValue(
const ParametersType & parameters)
const override;
186 GetDerivative(
const ParametersType & parameters, DerivativeType & derivative)
const override;
196 DerivativeType & derivative)
const override;
207 itkSetClampMacro(LinearityConditionWeight,
ScalarType, 0.0, NumericTraits<ScalarType>::max());
211 itkSetClampMacro(OrthonormalityConditionWeight,
ScalarType, 0.0, NumericTraits<ScalarType>::max());
215 itkSetClampMacro(PropernessConditionWeight,
ScalarType, 0.0, NumericTraits<ScalarType>::max());
219 itkSetMacro(UseLinearityCondition,
bool);
222 itkSetMacro(UseOrthonormalityCondition,
bool);
225 itkSetMacro(UsePropernessCondition,
bool);
230 itkSetMacro(CalculateLinearityCondition,
bool);
235 itkSetMacro(CalculateOrthonormalityCondition,
bool);
240 itkSetMacro(CalculatePropernessCondition,
bool);
243 itkGetConstReferenceMacro(LinearityConditionValue, MeasureType);
246 itkGetConstReferenceMacro(OrthonormalityConditionValue, MeasureType);
249 itkGetConstReferenceMacro(PropernessConditionValue, MeasureType);
252 itkGetConstReferenceMacro(LinearityConditionGradientMagnitude, MeasureType);
255 itkGetConstReferenceMacro(OrthonormalityConditionGradientMagnitude, MeasureType);
258 itkGetConstReferenceMacro(PropernessConditionGradientMagnitude, MeasureType);
267 itkSetClampMacro(DilationRadiusMultiplier,
268 CoordinateRepresentationType,
270 NumericTraits<CoordinateRepresentationType>::max());
279 itkSetMacro(UseFixedRigidityImage,
bool);
282 itkSetMacro(UseMovingRigidityImage,
bool);
296 PrintSelf(std::ostream & os, Indent indent)
const override;
306 const std::string & whichF,
307 const unsigned int WhichDimension,