template<class TFixedImage, class 
TScalarType>
class itk::TransformRigidityPenaltyTerm< TFixedImage, TScalarType >
A cost function that calculates a rigidity penalty term. 
A cost function that calculates a rigidity penalty term based on the B-spline coefficients of a B-spline transformation. This penalty term is a function of the 1st and 2nd order spatial derivatives of a transformation.
The intended use for this metric is to filter a B-spline coefficient image in order to calculate a rigidity penalty term on a B-spline transform.
The RigidityPenaltyTermValueImageFilter at each pixel location is computed by convolution with some separable 1D kernels.
The rigid penalty term penalizes deviations from a rigid transformation at regions specified by the so-called rigidity images.
This metric only works with B-splines as a transformation model.
References:
[1] M. Staring, S. Klein and J.P.W. Pluim, "A Rigidity Penalty Term for Nonrigid Registration," Medical Physics, vol. 34, no. 11, pp. 4098 - 4108, November 2007.
- See also
 - BSplineTransform 
 
Definition at line 71 of file itkTransformRigidityPenaltyTerm.h.
 
 | 
| using  | BSplineTransformPointer = typename BSplineTransformType::Pointer | 
|   | 
| using  | BSplineTransformType = BSplineOrder3TransformType | 
|   | 
| using  | CoefficientImageIteratorType = ImageRegionIterator< CoefficientImageType > | 
|   | 
| using  | CoefficientImagePointer = typename CoefficientImageType::Pointer | 
|   | 
| using  | CoefficientImageSpacingType = typename CoefficientImageType::SpacingType | 
|   | 
| using  | CoefficientImageType = typename BSplineTransformType::ImageType | 
|   | 
| using  | ConstPointer = SmartPointer< const Self > | 
|   | 
| using  | DilateFilterPointer = typename DilateFilterType::Pointer | 
|   | 
| using  | DilateFilterType = GrayscaleDilateImageFilter< RigidityImageType, RigidityImageType, StructuringElementType > | 
|   | 
| using  | GridSpacingType = typename BSplineTransformType::SpacingType | 
|   | 
| using  | NeighborhoodIteratorType = NeighborhoodIterator< CoefficientImageType > | 
|   | 
| using  | NeighborhoodSizeType = typename NeighborhoodType::SizeType | 
|   | 
| using  | NeighborhoodType = Neighborhood< ScalarType, Self::FixedImageDimension > | 
|   | 
| using  | NOIFType = NeighborhoodOperatorImageFilter< CoefficientImageType, CoefficientImageType > | 
|   | 
| using  | Pointer = SmartPointer< Self > | 
|   | 
| using  | RadiusType = typename NeighborhoodIteratorType::RadiusType | 
|   | 
| using  | RigidityImageIndexType = typename RigidityImageType::IndexType | 
|   | 
| using  | RigidityImageIteratorType = ImageRegionIterator< RigidityImageType > | 
|   | 
| using  | RigidityImagePointer = typename RigidityImageType::Pointer | 
|   | 
| using  | RigidityImagePointType = typename RigidityImageType::PointType | 
|   | 
| using  | RigidityImageRegionType = typename RigidityImageType::RegionType | 
|   | 
| using  | RigidityImageType = CoefficientImageType | 
|   | 
| using  | RigidityPixelType = typename RigidityImageType::PixelType | 
|   | 
| using  | Self = TransformRigidityPenaltyTerm | 
|   | 
| using  | SERadiusType = typename StructuringElementType::RadiusType | 
|   | 
| using  | StructuringElementType = BinaryBallStructuringElement< RigidityPixelType, Self::FixedImageDimension > | 
|   | 
| using  | Superclass = TransformPenaltyTerm< TFixedImage, TScalarType > | 
|   | 
| using  | ConstPointer = SmartPointer< const Self > | 
|   | 
| using  | InternalMatrixType = typename TransformType::InternalMatrixType | 
|   | 
| using  | JacobianOfSpatialHessianType = typename TransformType::JacobianOfSpatialHessianType | 
|   | 
| using  | JacobianOfSpatialJacobianType = typename TransformType::JacobianOfSpatialJacobianType | 
|   | 
| using  | Pointer = SmartPointer< Self > | 
|   | 
| using  | ScalarType = TScalarType | 
|   | 
| using  | Self = TransformPenaltyTerm | 
|   | 
| using  | SpatialHessianType = typename TransformType::SpatialHessianType | 
|   | 
| using  | SpatialJacobianType = typename TransformType::SpatialJacobianType | 
|   | 
| using  | Superclass = AdvancedImageToImageMetric< TFixedImage, TFixedImage > | 
|   | 
| using  | TransformType = typename Superclass::AdvancedTransformType | 
|   | 
| using  | AdvancedTransformType = AdvancedTransform< ScalarType, FixedImageDimension, MovingImageDimension > | 
|   | 
| using  | BSplineOrder1TransformPointer = typename BSplineOrder1TransformType::Pointer | 
|   | 
| using  | BSplineOrder1TransformType = AdvancedBSplineDeformableTransform< ScalarType, FixedImageDimension, 1 > | 
|   | 
| using  | BSplineOrder2TransformPointer = typename BSplineOrder2TransformType::Pointer | 
|   | 
| using  | BSplineOrder2TransformType = AdvancedBSplineDeformableTransform< ScalarType, FixedImageDimension, 2 > | 
|   | 
| using  | BSplineOrder3TransformPointer = typename BSplineOrder3TransformType::Pointer | 
|   | 
| using  | BSplineOrder3TransformType = AdvancedBSplineDeformableTransform< ScalarType, FixedImageDimension, 3 > | 
|   | 
| using  | CombinationTransformType = AdvancedCombinationTransform< ScalarType, FixedImageDimension > | 
|   | 
| using  | ConstPointer = SmartPointer< const Self > | 
|   | 
| using  | DerivativeValueType = typename DerivativeType::ValueType | 
|   | 
| using  | FixedImageLimiterOutputType = typename FixedImageLimiterType::OutputType | 
|   | 
| using  | FixedImageLimiterPointer = typename FixedImageLimiterType::Pointer | 
|   | 
| using  | FixedImageLimiterType = LimiterFunctionBase< RealType, FixedImageDimension > | 
|   | 
| using  | FixedImageMaskConstPointer = SmartPointer< const FixedImageMaskType > | 
|   | 
| using  | FixedImageMaskPointer = SmartPointer< FixedImageMaskType > | 
|   | 
| using  | FixedImageMaskType = ImageMaskSpatialObject< Self::FixedImageDimension > | 
|   | 
| using  | FixedImagePixelType = typename FixedImageType::PixelType | 
|   | 
| using  | FixedImagePointer = typename FixedImageType::Pointer | 
|   | 
| using  | ImageSampleContainerPointer = typename ImageSamplerType::OutputVectorContainerPointer | 
|   | 
| using  | ImageSampleContainerType = typename ImageSamplerType::OutputVectorContainerType | 
|   | 
| using  | ImageSamplerPointer = typename ImageSamplerType::Pointer | 
|   | 
| using  | ImageSamplerType = ImageSamplerBase< FixedImageType > | 
|   | 
| using  | MovingImageDerivativeScalesType = FixedArray< double, Self::MovingImageDimension > | 
|   | 
| using  | MovingImageLimiterOutputType = typename MovingImageLimiterType::OutputType | 
|   | 
| using  | MovingImageLimiterPointer = typename MovingImageLimiterType::Pointer | 
|   | 
| using  | MovingImageLimiterType = LimiterFunctionBase< RealType, MovingImageDimension > | 
|   | 
| using  | MovingImageMaskConstPointer = SmartPointer< const MovingImageMaskType > | 
|   | 
| using  | MovingImageMaskPointer = SmartPointer< MovingImageMaskType > | 
|   | 
| using  | MovingImageMaskType = ImageMaskSpatialObject< Self::MovingImageDimension > | 
|   | 
| using  | MovingImagePointer = typename MovingImageType::Pointer | 
|   | 
| using  | MovingImageRegionType = typename MovingImageType::RegionType | 
|   | 
| using  | NumberOfParametersType = typename AdvancedTransformType::NumberOfParametersType | 
|   | 
| using  | Pointer = SmartPointer< Self > | 
|   | 
| using  | ScalarType = typename TransformType::ScalarType | 
|   | 
| using  | Self = AdvancedImageToImageMetric | 
|   | 
| using  | Superclass = ImageToImageMetric< TFixedImage, TFixedImage > | 
|   | 
| using  | ThreadInfoType = MultiThreaderBase::WorkUnitInfo | 
|   | 
 | 
| void  | BeforeThreadedGetValueAndDerivative (const TransformParametersType ¶meters) const override | 
|   | 
| void  | CheckUseAndCalculationBooleans () | 
|   | 
| void  | FillRigidityCoefficientImage (const ParametersType ¶meters) const | 
|   | 
| virtual const char *  | GetClassName () const | 
|   | 
| void  | GetDerivative (const ParametersType ¶meters, DerivativeType &derivative) const override | 
|   | 
| virtual const MeasureType &  | GetLinearityConditionGradientMagnitude () | 
|   | 
| virtual const MeasureType &  | GetLinearityConditionValue () | 
|   | 
| virtual ScalarType  | GetLinearityConditionWeight () const | 
|   | 
| virtual const MeasureType &  | GetOrthonormalityConditionGradientMagnitude () | 
|   | 
| virtual const MeasureType &  | GetOrthonormalityConditionValue () | 
|   | 
| virtual ScalarType  | GetOrthonormalityConditionWeight () const | 
|   | 
| virtual const MeasureType &  | GetPropernessConditionGradientMagnitude () | 
|   | 
| virtual const MeasureType &  | GetPropernessConditionValue () | 
|   | 
| virtual ScalarType  | GetPropernessConditionWeight () const | 
|   | 
| MeasureType  | GetValue (const ParametersType ¶meters) const override | 
|   | 
| void  | GetValueAndDerivative (const ParametersType ¶meters, MeasureType &value, DerivativeType &derivative) const override | 
|   | 
| void  | Initialize () override | 
|   | 
|   | ITK_DISALLOW_COPY_AND_MOVE (TransformRigidityPenaltyTerm) | 
|   | 
|   | itkStaticConstMacro (FixedImageDimension, unsigned int, FixedImageType::ImageDimension) | 
|   | 
|   | itkStaticConstMacro (ImageDimension, unsigned int, FixedImageType::ImageDimension) | 
|   | 
|   | itkStaticConstMacro (MovingImageDimension, unsigned int, FixedImageType::ImageDimension) | 
|   | 
| virtual void  | SetBSplineTransform (BSplineTransformType *_arg) | 
|   | 
| virtual void  | SetCalculateLinearityCondition (bool _arg) | 
|   | 
| virtual void  | SetCalculateOrthonormalityCondition (bool _arg) | 
|   | 
| virtual void  | SetCalculatePropernessCondition (bool _arg) | 
|   | 
| virtual void  | SetDilateRigidityImages (bool _arg) | 
|   | 
| virtual void  | SetDilationRadiusMultiplier (CoordinateRepresentationType _arg) | 
|   | 
| virtual void  | SetFixedRigidityImage (RigidityImageType *_arg) | 
|   | 
| virtual void  | SetLinearityConditionWeight (ScalarType _arg) | 
|   | 
| virtual void  | SetMovingRigidityImage (RigidityImageType *_arg) | 
|   | 
| virtual void  | SetOrthonormalityConditionWeight (ScalarType _arg) | 
|   | 
| virtual void  | SetPropernessConditionWeight (ScalarType _arg) | 
|   | 
| virtual void  | SetUseFixedRigidityImage (bool _arg) | 
|   | 
| virtual void  | SetUseLinearityCondition (bool _arg) | 
|   | 
| virtual void  | SetUseMovingRigidityImage (bool _arg) | 
|   | 
| virtual void  | SetUseOrthonormalityCondition (bool _arg) | 
|   | 
| virtual void  | SetUsePropernessCondition (bool _arg) | 
|   | 
|   | ITK_DISALLOW_COPY_AND_MOVE (TransformPenaltyTerm) | 
|   | 
|   | itkStaticConstMacro (FixedImageDimension, unsigned int, FixedImageType::ImageDimension) | 
|   | 
| virtual const FixedImageLimiterType *  | GetFixedImageLimiter () | 
|   | 
| const FixedImageMaskType *  | GetFixedImageMask () const override | 
|   | 
| virtual double  | GetFixedLimitRangeRatio () const | 
|   | 
| ImageSamplerType *  | GetImageSampler () const | 
|   | 
| virtual const MovingImageDerivativeScalesType &  | GetMovingImageDerivativeScales () | 
|   | 
| virtual const MovingImageLimiterType *  | GetMovingImageLimiter () | 
|   | 
| const MovingImageMaskType *  | GetMovingImageMask () const override | 
|   | 
| virtual double  | GetMovingLimitRangeRatio () const | 
|   | 
| virtual double  | GetRequiredRatioOfValidSamples () const | 
|   | 
| virtual bool  | GetScaleGradientWithRespectToMovingImageOrientation () const | 
|   | 
| const AdvancedTransformType *  | GetTransform () const override | 
|   | 
| AdvancedTransformType *  | GetTransform () override | 
|   | 
| virtual bool  | GetUseFixedImageLimiter () const | 
|   | 
| virtual bool  | GetUseImageSampler () const | 
|   | 
| virtual const bool &  | GetUseMetricSingleThreaded () | 
|   | 
| virtual bool  | GetUseMovingImageDerivativeScales () const | 
|   | 
| virtual bool  | GetUseMovingImageLimiter () const | 
|   | 
| virtual const bool &  | GetUseMultiThread () | 
|   | 
| void  | Initialize () override | 
|   | 
|   | ITK_DISALLOW_COPY_AND_MOVE (AdvancedImageToImageMetric) | 
|   | 
|   | itkStaticConstMacro (FixedImageDimension, unsigned int, TFixedImage::ImageDimension) | 
|   | 
|   | itkStaticConstMacro (MovingImageDimension, unsigned int, TMovingImage::ImageDimension) | 
|   | 
| virtual void  | SetFixedImageLimiter (FixedImageLimiterType *_arg) | 
|   | 
| virtual void  | SetFixedImageMask (const FixedImageMaskType *const arg) | 
|   | 
| virtual void  | SetFixedLimitRangeRatio (double _arg) | 
|   | 
| virtual void  | SetImageSampler (ImageSamplerType *_arg) | 
|   | 
| virtual void  | SetMovingImageDerivativeScales (MovingImageDerivativeScalesType _arg) | 
|   | 
| virtual void  | SetMovingImageLimiter (MovingImageLimiterType *_arg) | 
|   | 
| virtual void  | SetMovingImageMask (const MovingImageMaskType *const arg) | 
|   | 
| virtual void  | SetMovingLimitRangeRatio (double _arg) | 
|   | 
| virtual void  | SetRequiredRatioOfValidSamples (double _arg) | 
|   | 
| virtual void  | SetScaleGradientWithRespectToMovingImageOrientation (bool _arg) | 
|   | 
| virtual void  | SetTransform (AdvancedTransformType *arg) | 
|   | 
| virtual void  | SetUseMetricSingleThreaded (bool _arg) | 
|   | 
| virtual void  | SetUseMovingImageDerivativeScales (bool _arg) | 
|   | 
| virtual void  | SetUseMultiThread (bool _arg) | 
|   | 
| virtual void  | UseMetricSingleThreadedOff () | 
|   | 
| virtual void  | UseMetricSingleThreadedOn () | 
|   | 
| virtual void  | UseMultiThreadOff () | 
|   | 
| virtual void  | UseMultiThreadOn () | 
|   | 
 | 
| void  | PrintSelf (std::ostream &os, Indent indent) const override | 
|   | 
|   | TransformRigidityPenaltyTerm () | 
|   | 
|   | ~TransformRigidityPenaltyTerm () override=default | 
|   | 
| virtual bool  | CheckForBSplineTransform2 (BSplineOrder3TransformPointer &bspline) const | 
|   | 
|   | TransformPenaltyTerm ()=default | 
|   | 
|   | ~TransformPenaltyTerm () override=default | 
|   | 
|   | AdvancedImageToImageMetric () | 
|   | 
| virtual void  | AfterThreadedGetValue (MeasureType &) const | 
|   | 
| virtual void  | AfterThreadedGetValueAndDerivative (MeasureType &, DerivativeType &) const | 
|   | 
| void  | CheckForAdvancedTransform () | 
|   | 
| void  | CheckForBSplineInterpolator () | 
|   | 
| void  | CheckForBSplineTransform () const | 
|   | 
| void  | CheckNumberOfSamples (unsigned long wanted, unsigned long found) const | 
|   | 
| virtual bool  | EvaluateMovingImageValueAndDerivative (const MovingImagePointType &mappedPoint, RealType &movingImageValue, MovingImageDerivativeType *gradient) const | 
|   | 
| bool  | EvaluateTransformJacobian (const FixedImagePointType &fixedImagePoint, TransformJacobianType &jacobian, NonZeroJacobianIndicesType &nzji) const | 
|   | 
| virtual void  | EvaluateTransformJacobianInnerProduct (const TransformJacobianType &jacobian, const MovingImageDerivativeType &movingImageDerivative, DerivativeType &imageJacobian) const | 
|   | 
| bool  | FastEvaluateMovingImageValueAndDerivative (const MovingImagePointType &mappedPoint, RealType &movingImageValue, MovingImageDerivativeType *gradient, const ThreadIdType threadId) const | 
|   | 
| virtual void  | InitializeImageSampler () | 
|   | 
| void  | InitializeLimiters () | 
|   | 
| virtual void  | InitializeThreadingParameters () const | 
|   | 
| virtual bool  | IsInsideMovingMask (const MovingImagePointType &point) const | 
|   | 
|   | itkAlignedTypedef (ITK_CACHE_LINE_ALIGNMENT, PaddedGetValueAndDerivativePerThreadStruct, AlignedGetValueAndDerivativePerThreadStruct) | 
|   | 
|   | itkPadStruct (ITK_CACHE_LINE_ALIGNMENT, GetValueAndDerivativePerThreadStruct, PaddedGetValueAndDerivativePerThreadStruct) | 
|   | 
| void  | LaunchGetValueAndDerivativeThreaderCallback () const | 
|   | 
| void  | LaunchGetValueThreaderCallback () const | 
|   | 
| void  | PrintSelf (std::ostream &os, Indent indent) const override | 
|   | 
| void  | SetFixedImageMask (const typename Superclass::FixedImageMaskType *) final | 
|   | 
| void  | SetFixedImageMask (typename Superclass::FixedImageMaskType *) final | 
|   | 
| void  | SetMovingImageMask (const typename Superclass::MovingImageMaskType *) final | 
|   | 
| void  | SetMovingImageMask (typename Superclass::MovingImageMaskType *) final | 
|   | 
| virtual void  | SetUseFixedImageLimiter (bool _arg) | 
|   | 
| virtual void  | SetUseImageSampler (bool _arg) | 
|   | 
| virtual void  | SetUseMovingImageLimiter (bool _arg) | 
|   | 
| virtual void  | ThreadedGetValue (ThreadIdType) const | 
|   | 
| virtual void  | ThreadedGetValueAndDerivative (ThreadIdType) const | 
|   | 
| MovingImagePointType  | TransformPoint (const FixedImagePointType &fixedImagePoint) const | 
|   | 
|   | ~AdvancedImageToImageMetric () override=default | 
|   |