![]() |
Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages |
#include <elxTransformRigidityPenaltyTerm.h>
A penalty term based on non-rigidity.
For more information check the paper:
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.
The parameters used in this class are:
(Metric "TransformRigidityPenalty")
LinearityConditionWeight: A parameter to weigh the linearity condition term of the rigidity term.
example: (LinearityConditionWeight 2.0)
Default is 1.0.
OrthonormalityConditionWeight: A parameter to weigh the orthonormality condition term of the rigidity term.
example: (OrthonormalityConditionWeight 2.0)
Default is 1.0.
PropernessConditionWeight: A parameter to weigh the properness condition term of the rigidity term.
example: (PropernessConditionWeight 2.0)
Default is 1.0.
UseLinearityCondition: A flag to specify the usage of the linearity condition term for optimisation.
example: (UseLinearityCondition "false")
Default is "true".
UseOrthonormalityCondition: A flag to specify the usage of the orthonormality condition term for optimisation.
example: (UseOrthonormalityCondition "false")
Default is "true".
UsePropernessCondition: A flag to specify the usage of the properness condition term for optimisation.
example: (UsePropernessCondition "false")
Default is "true".
CalculateLinearityCondition: A flag to specify if the linearity condition should still be calculated, even if it is not used for optimisation.
example: (CalculateLinearityCondition "false")
Default is "true".
CalculateOrthonormalityCondition: A flag to specify if the orthonormality condition should still be calculated, even if it is not used for optimisation.
example: (CalculateOrthonormalityCondition "false")
Default is "true".
CalculatePropernessCondition: A flag to specify if the properness condition should still be calculated, even if it is not used for optimisation.
example: (CalculatePropernessCondition "false")
Default is "true".
FixedRigidityImageName: the name of a coefficient image to specify the rigidity index of voxels in the fixed image.
example: (FixedRigidityImageName "fixedRigidityImage.mhd")
If not supplied the rigidity coefficient is not based on the fixed image, which is recommended.
If neither FixedRigidityImageName nor MovingRigidityImageName are supplied, the rigidity penalty term is evaluated on the whole transform input domain.
MovingRigidityImageName: the name of a coefficient image to specify the rigidity index of voxels in the moving image.
example: (MovingRigidityImageName "movingRigidityImage.mhd")
If not supplied the rigidity coefficient is not based on the moving image, which is NOT recommended.
If neither FixedRigidityImageName nor MovingRigidityImageName are supplied, the rigidity penalty term is evaluated on the whole transform input domain.
DilateRigidityImages: flag to specify the dilation of the rigidity coefficient images. With this the region of rigidity can be extended to force rigidity of the inner region.
example: (DilateRigidityImages "false" "false" "true")
Default is "true".
DilationRadiusMultiplier: the dilation radius is a multiplier times the grid spacing of the B-spline transform.
example: (DilationRadiusMultiplier 1.0 1.0 2.0)
Default is 1.0.
Definition at line 110 of file elxTransformRigidityPenaltyTerm.h.
Public Types | |
using | CoefficientImageType = typename BSplineTransformType::ImageType |
using | ConstPointer = itk::SmartPointer< const Self > |
using | ITKBaseType = typename Superclass2::ITKBaseType |
using | Pointer = itk::SmartPointer< Self > |
using | Self = TransformRigidityPenalty |
using | Superclass1 = itk::TransformRigidityPenaltyTerm< typename MetricBase< TElastix >::FixedImageType, double > |
using | Superclass2 = MetricBase< TElastix > |
![]() | |
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< MetricBase< TElastix >::FixedImageType, double > |
![]() | |
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 | FixedImageMaskSpatialObject2Type = ImageMaskSpatialObject< Self::FixedImageDimension > |
using | FixedImagePixelType = typename FixedImageType::PixelType |
using | FixedImagePointer = typename FixedImageType::Pointer |
using | HessianType = vnl_sparse_matrix< HessianValueType > |
using | HessianValueType = typename DerivativeType::ValueType |
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 | MovingImageMaskSpatialObject2Type = 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 | ThreaderType = itk::PlatformMultiThreader |
using | ThreadInfoType = typename ThreaderType::WorkUnitInfo |
![]() | |
using | AdvancedMetricType = itk::AdvancedImageToImageMetric< FixedImageType, MovingImageType > |
using | CoordinateRepresentationType = typename ITKBaseType::ParametersValueType |
using | ElastixType = TElastix |
using | FixedImageType = typename ElastixType::FixedImageType |
using | FixedPointSetType = itk::PointSet< CoordinateRepresentationType, FixedImageDimension, itk::DefaultStaticMeshTraits< CoordinateRepresentationType, FixedImageDimension, FixedImageDimension, CoordinateRepresentationType, CoordinateRepresentationType, CoordinateRepresentationType > > |
using | FixedPointType = typename FixedImageType::PointType |
using | FixedPointValueType = typename FixedPointType::ValueType |
using | ImageSamplerBaseType = typename AdvancedMetricType::ImageSamplerType |
using | ITKBaseType = itk::SingleValuedCostFunction |
using | MeasureType = typename ITKBaseType::MeasureType |
using | MovingImageDerivativeScalesType = typename AdvancedMetricType::MovingImageDerivativeScalesType |
using | MovingImageType = typename ElastixType::MovingImageType |
using | MovingPointSetType = itk::PointSet< CoordinateRepresentationType, MovingImageDimension, itk::DefaultStaticMeshTraits< CoordinateRepresentationType, MovingImageDimension, MovingImageDimension, CoordinateRepresentationType, CoordinateRepresentationType, CoordinateRepresentationType > > |
using | MovingPointType = typename MovingImageType::PointType |
using | MovingPointValueType = typename MovingPointType::ValueType |
using | RegistrationType = typename ElastixType::RegistrationBaseType |
using | Self = MetricBase |
using | Superclass = BaseComponentSE< TElastix > |
![]() | |
using | ConfigurationPointer = Configuration::Pointer |
using | ElastixType = TElastix |
using | RegistrationType = typename ElastixType::RegistrationBaseType |
using | Self = BaseComponentSE |
using | Superclass = BaseComponent |
Static Public Member Functions | |
static Pointer | New () |
![]() | |
static Pointer | New () |
![]() | |
template<typename TBaseComponent > | |
static auto | AsITKBaseType (TBaseComponent *const baseComponent) -> decltype(baseComponent->GetAsITKBaseType()) |
static void | InitializeElastixExecutable () |
static bool | IsElastixLibrary () |
Protected Member Functions | |
TransformRigidityPenalty ()=default | |
~TransformRigidityPenalty () override=default | |
![]() | |
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 &value) const |
virtual void | AfterThreadedGetValueAndDerivative (MeasureType &value, DerivativeType &derivative) const |
virtual void | CheckForAdvancedTransform () |
virtual void | CheckForBSplineInterpolator () |
virtual void | CheckForBSplineTransform () const |
virtual void | CheckNumberOfSamples (unsigned long wanted, unsigned long found) const |
virtual bool | EvaluateMovingImageValueAndDerivative (const MovingImagePointType &mappedPoint, RealType &movingImageValue, MovingImageDerivativeType *gradient) const |
virtual 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 () |
virtual void | InitializeLimiters () |
virtual void | InitializeThreadingParameters () const |
virtual bool | IsInsideMovingMask (const MovingImagePointType &point) const |
itkAlignedTypedef (ITK_CACHE_LINE_ALIGNMENT, PaddedGetValueAndDerivativePerThreadStruct, AlignedGetValueAndDerivativePerThreadStruct) | |
itkAlignedTypedef (ITK_CACHE_LINE_ALIGNMENT, PaddedGetValuePerThreadStruct, AlignedGetValuePerThreadStruct) | |
itkPadStruct (ITK_CACHE_LINE_ALIGNMENT, GetValueAndDerivativePerThreadStruct, PaddedGetValueAndDerivativePerThreadStruct) | |
itkPadStruct (ITK_CACHE_LINE_ALIGNMENT, GetValuePerThreadStruct, PaddedGetValuePerThreadStruct) | |
void | LaunchGetValueAndDerivativeThreaderCallback () const |
void | LaunchGetValueThreaderCallback () const |
void | PrintSelf (std::ostream &os, Indent indent) const override |
virtual void | SetUseFixedImageLimiter (bool _arg) |
virtual void | SetUseImageSampler (bool _arg) |
virtual void | SetUseMovingImageLimiter (bool _arg) |
virtual void | ThreadedGetValue (ThreadIdType threadID) |
virtual void | ThreadedGetValueAndDerivative (ThreadIdType threadID) |
MovingImagePointType | TransformPoint (const FixedImagePointType &fixedImagePoint) const |
~AdvancedImageToImageMetric () override=default | |
![]() | |
virtual MeasureType | GetExactValue (const ParametersType ¶meters) |
MetricBase ()=default | |
~MetricBase () override=default | |
![]() | |
BaseComponentSE ()=default | |
~BaseComponentSE () override=default | |
![]() | |
BaseComponent ()=default | |
virtual | ~BaseComponent ()=default |
Private Attributes | |
elxOverrideGetSelfMacro | |
using itk::TransformRigidityPenaltyTerm< TFixedImage, TScalarType >::CoefficientImageType = typename BSplineTransformType::ImageType |
Definition at line 154 of file itkTransformRigidityPenaltyTerm.h.
using elastix::TransformRigidityPenalty< TElastix >::ConstPointer = itk::SmartPointer<const Self> |
Definition at line 122 of file elxTransformRigidityPenaltyTerm.h.
using elastix::TransformRigidityPenalty< TElastix >::ITKBaseType = typename Superclass2::ITKBaseType |
Definition at line 187 of file elxTransformRigidityPenaltyTerm.h.
using elastix::TransformRigidityPenalty< TElastix >::Pointer = itk::SmartPointer<Self> |
Definition at line 121 of file elxTransformRigidityPenaltyTerm.h.
using elastix::TransformRigidityPenalty< TElastix >::Self = TransformRigidityPenalty |
Standard ITK-stuff.
Definition at line 118 of file elxTransformRigidityPenaltyTerm.h.
using elastix::TransformRigidityPenalty< TElastix >::Superclass1 = itk::TransformRigidityPenaltyTerm<typename MetricBase<TElastix>::FixedImageType, double> |
Definition at line 119 of file elxTransformRigidityPenaltyTerm.h.
using elastix::TransformRigidityPenalty< TElastix >::Superclass2 = MetricBase<TElastix> |
Definition at line 120 of file elxTransformRigidityPenaltyTerm.h.
|
protecteddefault |
The constructor.
|
overrideprotecteddefault |
The destructor.
|
overridevirtual |
Do some things after each iteration:
Reimplemented from elastix::BaseComponent.
|
overridevirtual |
Do some things before each resolution:
Reimplemented from elastix::BaseComponent.
|
overridevirtual |
Do some things before registration:
Reimplemented from elastix::BaseComponent.
elastix::TransformRigidityPenalty< TElastix >::elxClassNameMacro | ( | "TransformRigidityPenalty< TElastix >" | ) |
Name of this class. Use this name in the parameter file to select this specific metric.
example: (Metric "TransformRigidityPenalty")
|
virtual |
Run-time type information (and related methods).
Reimplemented from elastix::MetricBase< TElastix >.
|
override |
Sets up a timer to measure the initialization time and calls the Superclass' implementation.
elastix::TransformRigidityPenalty< TElastix >::ITK_DISALLOW_COPY_AND_MOVE | ( | TransformRigidityPenalty< TElastix > | ) |
elastix::TransformRigidityPenalty< TElastix >::itkStaticConstMacro | ( | FixedImageDimension | , |
unsigned int | , | ||
FixedImageType::ImageDimension | |||
) |
The fixed image dimension.
elastix::TransformRigidityPenalty< TElastix >::itkStaticConstMacro | ( | MovingImageDimension | , |
unsigned int | , | ||
MovingImageType::ImageDimension | |||
) |
The moving image dimension.
|
static |
Method for creation through the object factory.
|
inlineoverridevirtual |
This metric is advanced (so it has a sampling possibility), but it purposely does not use samplers. The MetricBase class, however, issues a warning if this is the case, so we overwrite that function.
Reimplemented from elastix::MetricBase< TElastix >.
Definition at line 223 of file elxTransformRigidityPenaltyTerm.h.
|
private |
Definition at line 234 of file elxTransformRigidityPenaltyTerm.h.
Generated on 2023-01-13
for elastix by ![]() |
![]() |