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;
172 using DilateFilterType = GrayscaleDilateImageFilter<RigidityImageType, RigidityImageType, StructuringElementType>;
181 GetValue(
const ParametersType & parameters)
const override;
185 GetDerivative(
const ParametersType & parameters, DerivativeType & derivative)
const override;
195 DerivativeType & derivative)
const override;
206 itkSetClampMacro(LinearityConditionWeight,
ScalarType, 0.0, NumericTraits<ScalarType>::max());
210 itkSetClampMacro(OrthonormalityConditionWeight,
ScalarType, 0.0, NumericTraits<ScalarType>::max());
214 itkSetClampMacro(PropernessConditionWeight,
ScalarType, 0.0, NumericTraits<ScalarType>::max());
218 itkSetMacro(UseLinearityCondition,
bool);
221 itkSetMacro(UseOrthonormalityCondition,
bool);
224 itkSetMacro(UsePropernessCondition,
bool);
229 itkSetMacro(CalculateLinearityCondition,
bool);
234 itkSetMacro(CalculateOrthonormalityCondition,
bool);
239 itkSetMacro(CalculatePropernessCondition,
bool);
242 itkGetConstReferenceMacro(LinearityConditionValue, MeasureType);
245 itkGetConstReferenceMacro(OrthonormalityConditionValue, MeasureType);
248 itkGetConstReferenceMacro(PropernessConditionValue, MeasureType);
251 itkGetConstReferenceMacro(LinearityConditionGradientMagnitude, MeasureType);
254 itkGetConstReferenceMacro(OrthonormalityConditionGradientMagnitude, MeasureType);
257 itkGetConstReferenceMacro(PropernessConditionGradientMagnitude, MeasureType);
266 itkSetClampMacro(DilationRadiusMultiplier,
267 CoordinateRepresentationType,
269 NumericTraits<CoordinateRepresentationType>::max());
278 itkSetMacro(UseFixedRigidityImage,
bool);
281 itkSetMacro(UseMovingRigidityImage,
bool);
295 PrintSelf(std::ostream & os, Indent indent)
const override;
305 const std::string & whichF,
306 const unsigned int WhichDimension,