Loading...
Searching...
No Matches
elastix::StatisticalShapePenalty< TElastix > Class Template Reference
Components » Metrics

`#include <elxStatisticalShapePenalty.h>`

## Detailed Description

template<class TElastix>
class elastix::StatisticalShapePenalty< TElastix >

An metric based on the itk::StatisticalShapePointPenalty.

The parameters used in this class are:

Parameters

  Metric: Select this metric as follows:
  (Metric "StatisticalShapePenalty")

  ShrinkageIntensity: The mixing ratio ($\beta$) of the provided covariance matrix and an identity matrix. $\Sigma' = (1-\beta)\Sigma + \beta \sigma_0^2 I$ Can be defined for each resolution
  example: (ShrinkageIntensity 0.2)

  BaseVariance: The width ($\sigma_0^2$) of the non-informative prior. Can be defined for each resolution
  example: (BaseVariance 1000.0)

Author
  F.F. Berendsen, Image Sciences Institute, UMC Utrecht, The Netherlands

Note
  This work was funded by the projects Care4Me and Mediate.
  If you use the StatisticalShapePenalty anywhere we would appreciate if you cite the following article:
  F.F. Berendsen et al., Free-form image registration regularized by a statistical shape model: application to organ segmentation in cervical MR, Comput. Vis. Image Understand. (2013), http://dx.doi.org/10.1016/j.cviu.2012.12.006

Definition at line 58 of file elxStatisticalShapePenalty.h.

Inheritance diagram for elastix::StatisticalShapePenalty< TElastix >:
[legend]

## Public Types

using | CombinationTransformType = itk::AdvancedCombinationTransform<CoordRepType, Self::FixedImageDimension>
using | ConstPointer = SmartPointer<const Self>
using | CoordRepType = typename OutputPointType::CoordRepType
using | FixedImageType
using | ImageType = FixedImageType
using | InitialTransformType = typename CombinationTransformType::InitialTransformType
using | ITKBaseType = typename Superclass2::ITKBaseType
using | MovingImageType
using | Pointer = SmartPointer<Self>
using | PointSetType = FixedPointSetType
using | Self = StatisticalShapePenalty
using | Superclass1
using | Superclass2 = MetricBase<TElastix>
using | VnlVectorType = vnl_vector<CoordRepType>
Public Types inherited from itk::StatisticalShapePointPenalty< TFixedPointSet, TMovingPointSet >
using | ConstPointer = SmartPointer<const Self>
using | CoordRepType = typename OutputPointType::CoordRepType
using | DerivativeValueType
using | FixedPointSetConstPointer
using | FixedPointSetType
using | InputPointType
using | MovingPointSetConstPointer
using | MovingPointSetType
using | NonZeroJacobianIndicesType
using | OutputPointType
using | PCACovarianceType = vnl_svd_economy<CoordRepType>
using | PointDataIterator
using | Pointer = SmartPointer<Self>
using | PointIterator
using | ProposalDerivativeType = typename std::vector<VnlVectorType *>
using | Self = StatisticalShapePointPenalty
using | Superclass = SingleValuedPointSetToPointSetMetric<TFixedPointSet, TMovingPointSet>
using | TransformJacobianType
using | TransformParametersType
using | TransformPointer
using | TransformType
using | VnlMatrixType = vnl_matrix<CoordRepType>
using | VnlVectorType = vnl_vector<CoordRepType>
Public Types inherited from itk::SingleValuedPointSetToPointSetMetric< TFixedPointSet, TMovingPointSet >
using | ConstPointer = SmartPointer<const Self>
using | CoordinateRepresentationType = Superclass::ParametersValueType
using | DerivativeValueType = typename DerivativeType::ValueType
using | FixedImageMaskConstPointer = typename FixedImageMaskType::ConstPointer
using | FixedImageMaskPointer = typename FixedImageMaskType::Pointer
using | FixedImageMaskType = ImageMaskSpatialObject<Self::FixedPointSetDimension>
using | FixedPointSetConstPointer = typename FixedPointSetType::ConstPointer
using | FixedPointSetPixelType = typename FixedPointSetType::PixelType
using | FixedPointSetType = TFixedPointSet
using | InputPointType = typename TransformType::InputPointType
using | MovingImageMaskConstPointer = typename MovingImageMaskType::ConstPointer
using | MovingImageMaskPointer = typename MovingImageMaskType::Pointer
using | MovingImageMaskType = ImageMaskSpatialObject<Self::MovingPointSetDimension>
using | MovingPointSetConstPointer = typename MovingPointSetType::ConstPointer
using | MovingPointSetPixelType = typename MovingPointSetType::PixelType
using | MovingPointSetType = TMovingPointSet
using | NonZeroJacobianIndicesType = typename TransformType::NonZeroJacobianIndicesType
using | OutputPointType = typename TransformType::OutputPointType
using | PointDataIterator = typename FixedPointSetType::PointDataContainer::ConstIterator
using | Pointer = SmartPointer<Self>
using | PointIterator = typename FixedPointSetType::PointsContainer::ConstIterator
using | Self = SingleValuedPointSetToPointSetMetric
using | Superclass = SingleValuedCostFunction
using | TransformJacobianType = typename TransformType::JacobianType
using | TransformParametersType = typename TransformType::ParametersType
using | TransformPointer = typename TransformType::Pointer
using | TransformType
Public Types inherited from elastix::MetricBase< TElastix >
using | AdvancedMetricType = itk::AdvancedImageToImageMetric<FixedImageType, MovingImageType>
using | CoordinateRepresentationType = typename ITKBaseType::ParametersValueType
using | ElastixType
using | FixedImageType = typename ElastixType::FixedImageType
using | FixedPointSetType
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
using | MovingPointType = typename MovingImageType::PointType
using | MovingPointValueType = typename MovingPointType::ValueType
using | RegistrationType
using | Self = MetricBase
using | Superclass = BaseComponentSE<TElastix>
Public Types inherited from elastix::BaseComponentSE< TElastix >
using | ElastixType = TElastix
using | RegistrationType = typename ElastixType::RegistrationBaseType
using | Self = BaseComponentSE
using | Superclass = BaseComponent

## Public Member Functions

void | BeforeEachResolution () override
void | BeforeRegistration () override
| elxClassNameMacro ("StatisticalShapePenalty")
virtual const char * | GetClassName () const
void | Initialize () override
| ITK_DISALLOW_COPY_AND_MOVE (StatisticalShapePenalty)
| itkStaticConstMacro (FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
| itkStaticConstMacro (MovingImageDimension, unsigned int, MovingImageType::ImageDimension)
unsigned int | ReadLandmarks (const std::string &landmarkFileName, typename PointSetType::Pointer &pointSet, const typename ImageType::ConstPointer image)
unsigned int | ReadShape (const std::string &ShapeFileName, typename PointSetType::Pointer &pointSet)
void | SelectNewSamples () override
Public Member Functions inherited from itk::StatisticalShapePointPenalty< TFixedPointSet, TMovingPointSet >
virtual void | BaseVarianceNeedsUpdateOff ()
virtual void | BaseVarianceNeedsUpdateOn ()
virtual MeasureType | GetBaseVariance () const
virtual MeasureType | GetCentroidXVariance () const
virtual MeasureType | GetCentroidYVariance () const
virtual MeasureType | GetCentroidZVariance () const
virtual MeasureType | GetCutOffSharpness () const
virtual MeasureType | GetCutOffValue () const
void | GetDerivative (const TransformParametersType &parameters, DerivativeType &Derivative) const override
virtual const bool & | GetNormalizedShapeModel ()
virtual const int & | GetShapeModelCalculation ()
virtual MeasureType | GetShrinkageIntensity () const
virtual MeasureType | GetSizeVariance () const
MeasureType | GetValue (const TransformParametersType &parameters) const override
void | GetValueAndDerivative (const TransformParametersType &parameters, MeasureType &Value, DerivativeType &Derivative) const override
void | Initialize () override
| ITK_DISALLOW_COPY_AND_MOVE (StatisticalShapePointPenalty)
virtual void | NormalizedShapeModelOff ()
virtual void | NormalizedShapeModelOn ()
virtual void | SetBaseVariance (MeasureType _arg)
virtual void | SetBaseVarianceNeedsUpdate (bool _arg)
virtual void | SetCentroidXVariance (MeasureType _arg)
virtual void | SetCentroidYVariance (MeasureType _arg)
virtual void | SetCentroidZVariance (MeasureType _arg)
virtual void | SetCovarianceMatrix (const vnl_matrix< double > *_arg)
virtual void | SetCutOffSharpness (MeasureType _arg)
virtual void | SetCutOffValue (MeasureType _arg)
virtual void | SetEigenValues (const vnl_vector< double > *_arg)
virtual void | SetEigenVectors (const vnl_matrix< double > *_arg)
virtual void | SetMeanVector (const vnl_vector< double > *_arg)
virtual void | SetNormalizedShapeModel (bool _arg)
virtual void | SetShapeModelCalculation (int _arg)
virtual void | SetShrinkageIntensity (MeasureType _arg)
virtual void | SetShrinkageIntensityNeedsUpdate (bool _arg)
virtual void | SetSizeVariance (MeasureType _arg)
virtual void | SetVariancesNeedsUpdate (bool _arg)
virtual void | ShrinkageIntensityNeedsUpdateOff ()
virtual void | ShrinkageIntensityNeedsUpdateOn ()
virtual void | VariancesNeedsUpdateOff ()
virtual void | VariancesNeedsUpdateOn ()
Public Member Functions inherited from itk::SingleValuedPointSetToPointSetMetric< TFixedPointSet, TMovingPointSet >
virtual void | BeforeThreadedGetValueAndDerivative (const TransformParametersType &parameters) const
virtual const FixedImageMaskType * | GetFixedImageMask ()
virtual const FixedPointSetType * | GetFixedPointSet ()
virtual const MovingImageMaskType * | GetMovingImageMask ()
virtual const MovingPointSetType * | GetMovingPointSet ()
unsigned int | GetNumberOfParameters () const override
virtual const TransformType * | GetTransform ()
virtual const bool & | GetUseMetricSingleThreaded ()
| ITK_DISALLOW_COPY_AND_MOVE (SingleValuedPointSetToPointSetMetric)
| itkStaticConstMacro (FixedPointSetDimension, unsigned int, TFixedPointSet::PointDimension)
| itkStaticConstMacro (MovingPointSetDimension, unsigned int, TMovingPointSet::PointDimension)
virtual void | SetFixedImageMask (const FixedImageMaskType *_arg)
virtual void | SetFixedPointSet (const FixedPointSetType *_arg)
virtual void | SetMovingImageMask (const MovingImageMaskType *_arg)
virtual void | SetMovingPointSet (const MovingPointSetType *_arg)
virtual void | SetTransform (TransformType *_arg)
void | SetTransformParameters (const ParametersType &parameters) const
virtual void | SetUseMetricSingleThreaded (bool _arg)
virtual void | UseMetricSingleThreadedOff ()
virtual void | UseMetricSingleThreadedOn ()
Public Member Functions inherited from elastix::MetricBase< TElastix >
void | AfterEachIterationBase () override
void | BeforeEachResolutionBase () override
virtual ImageSamplerBaseType * | GetAdvancedMetricImageSampler () const
virtual bool | GetAdvancedMetricUseImageSampler () const
ITKBaseType * | GetAsITKBaseType ()
const ITKBaseType * | GetAsITKBaseType () const
virtual MeasureType | GetCurrentExactMetricValue () const
virtual bool | GetShowExactMetricValue () const
| ITK_DISALLOW_COPY_AND_MOVE (MetricBase)
| itkStaticConstMacro (FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
| itkStaticConstMacro (MovingImageDimension, unsigned int, MovingImageType::ImageDimension)
virtual void | SetAdvancedMetricImageSampler (ImageSamplerBaseType *sampler)
Public Member Functions inherited from elastix::BaseComponentSE< TElastix >
void | AddTargetCellToIterationInfo (const char *const name)
const Configuration * | GetConfiguration () const
ElastixType * | GetElastix () const
auto & | GetIterationInfoAt (const char *const name)
RegistrationType * | GetRegistration () const
| ITK_DISALLOW_COPY_AND_MOVE (BaseComponentSE)
void | RemoveTargetCellFromIterationInfo (const char *const name)
void | SetConfiguration (const Configuration *_arg)
void | SetElastix (ElastixType *_arg)
Public Member Functions inherited from elastix::BaseComponent
virtual void | AfterEachIteration ()
virtual void | AfterEachResolution ()
virtual void | AfterEachResolutionBase ()
virtual void | AfterRegistration ()
virtual void | AfterRegistrationBase ()
virtual int | BeforeAll ()
virtual int | BeforeAllBase ()
virtual void | BeforeRegistrationBase ()
virtual const char * | elxGetClassName () const
const char * | GetComponentLabel () const
| ITK_DISALLOW_COPY_AND_MOVE (BaseComponent)
| itkTypeMacroNoParent (BaseComponent)
void | SetComponentLabel (const char *label, unsigned int idx)

## Static Public Member Functions

static Pointer | New ()
Static Public Member Functions inherited from itk::StatisticalShapePointPenalty< TFixedPointSet, TMovingPointSet >
static Pointer | New ()
Static Public Member Functions inherited from elastix::BaseComponent
template<typename TBaseComponent>
static auto | AsITKBaseType (TBaseComponent *const baseComponent) -> decltype(baseComponent->GetAsITKBaseType())
static void | InitializeElastixExecutable ()
static bool | IsElastixLibrary ()

## Protected Member Functions

| StatisticalShapePenalty ()=default
| ~StatisticalShapePenalty () override=default
Protected Member Functions inherited from itk::StatisticalShapePointPenalty< TFixedPointSet, TMovingPointSet >
void | PrintSelf (std::ostream &os, Indent indent) const override
| StatisticalShapePointPenalty ()
| ~StatisticalShapePointPenalty () override
Protected Member Functions inherited from itk::SingleValuedPointSetToPointSetMetric< TFixedPointSet, TMovingPointSet >
void | PrintSelf (std::ostream &os, Indent indent) const override
| SingleValuedPointSetToPointSetMetric ()=default
| ~SingleValuedPointSetToPointSetMetric () override=default
Protected Member Functions inherited from elastix::MetricBase< TElastix >
virtual MeasureType | GetExactValue (const ParametersType &parameters)
| MetricBase ()=default
| ~MetricBase () override=default
Protected Member Functions inherited from elastix::BaseComponentSE< TElastix >
| BaseComponentSE ()=default
| ~BaseComponentSE () override=default
Protected Member Functions inherited from elastix::BaseComponent
| BaseComponent ()=default
virtual | ~BaseComponent ()=default

## Private Attributes

| elxOverrideGetSelfMacro

## Additional Inherited Members

Protected Types inherited from elastix::MetricBase< TElastix >
using | ExactMetricImageSamplerPointer = typename ExactMetricImageSamplerType::Pointer
using | ExactMetricImageSamplerType = itk::ImageGridSampler<FixedImageType>
using | ExactMetricSampleGridSpacingType = typename ExactMetricImageSamplerType::SampleGridSpacingType
using | ParametersType = typename ITKBaseType::ParametersType
Protected Attributes inherited from itk::SingleValuedPointSetToPointSetMetric< TFixedPointSet, TMovingPointSet >
FixedImageMaskConstPointer | m_FixedImageMask { nullptr }
FixedPointSetConstPointer | m_FixedPointSet { nullptr }
MovingImageMaskConstPointer | m_MovingImageMask { nullptr }
MovingPointSetConstPointer | m_MovingPointSet { nullptr }
unsigned int | m_NumberOfPointsCounted { 0 }
TransformPointer | m_Transform { nullptr }
bool | m_UseMetricSingleThreaded { true }
Protected Attributes inherited from elastix::MetricBase< TElastix >
MeasureType | m_CurrentExactMetricValue { 0.0 }
unsigned int | m_ExactMetricEachXNumberOfIterations { 1 }
ExactMetricSampleGridSpacingType | m_ExactMetricSampleGridSpacing
ExactMetricImageSamplerPointer | m_ExactMetricSampler { nullptr }
bool | m_ShowExactMetricValue { false }
Protected Attributes inherited from elastix::BaseComponentSE< TElastix >
Configuration::ConstPointer | m_Configuration {}
itk::WeakPointer< TElastix > | m_Elastix {}
RegistrationType * | m_Registration {}

## Member Typedef Documentation

## CombinationTransformType

template<class TElastix>

using elastix::StatisticalShapePenalty< TElastix >::CombinationTransformType = itk::AdvancedCombinationTransform<CoordRepType, Self::FixedImageDimension>

Other typedef's.

Definition at line 118 of file elxStatisticalShapePenalty.h.

## ConstPointer

template<class TElastix>

using elastix::StatisticalShapePenalty< TElastix >::ConstPointer = SmartPointer<const Self>

Definition at line 72 of file elxStatisticalShapePenalty.h.

## CoordRepType

template<class TElastix>

using elastix::StatisticalShapePenalty< TElastix >::CoordRepType = typename OutputPointType::CoordRepType

Definition at line 109 of file elxStatisticalShapePenalty.h.

## FixedImageType

template<class TElastix>

using elastix::MetricBase< TElastix >::FixedImageType

Other typedef's.

Definition at line 89 of file elxMetricBase.h.

## ImageType

template<class TElastix>

using elastix::StatisticalShapePenalty< TElastix >::ImageType = FixedImageType

Definition at line 138 of file elxStatisticalShapePenalty.h.

## InitialTransformType

template<class TElastix>

using elastix::StatisticalShapePenalty< TElastix >::InitialTransformType = typename CombinationTransformType::InitialTransformType

Definition at line 119 of file elxStatisticalShapePenalty.h.

## ITKBaseType

template<class TElastix>

using elastix::StatisticalShapePenalty< TElastix >::ITKBaseType = typename Superclass2::ITKBaseType

Definition at line 124 of file elxStatisticalShapePenalty.h.

## MovingImageType

template<class TElastix>

using elastix::MetricBase< TElastix >::MovingImageType

Definition at line 92 of file elxMetricBase.h.

## Pointer

template<class TElastix>

using elastix::StatisticalShapePenalty< TElastix >::Pointer = SmartPointer<Self>

Definition at line 71 of file elxStatisticalShapePenalty.h.

## PointSetType

template<class TElastix>

using elastix::StatisticalShapePenalty< TElastix >::PointSetType = FixedPointSetType

Assuming fixed and moving pointsets are of equal type, which implicitly assumes that the fixed and moving image are of the same type.

Definition at line 137 of file elxStatisticalShapePenalty.h.

## Self

template<class TElastix>

using elastix::StatisticalShapePenalty< TElastix >::Self = StatisticalShapePenalty

Standard ITK-stuff.

Definition at line 67 of file elxStatisticalShapePenalty.h.

## Superclass1

template<class TElastix>

using elastix::StatisticalShapePenalty< TElastix >::Superclass1

Initial value:
StatisticalShapePointPenalty<typename MetricBase<TElastix>::FixedPointSetType,
typename MetricBase<TElastix>::MovingPointSetType>
elastix::MetricBase::MovingPointSetType
itk::PointSet< CoordinateRepresentationType, MovingImageDimension, itk::DefaultStaticMeshTraits< CoordinateRepresentationType, MovingImageDimension, MovingImageDimension, CoordinateRepresentationType, CoordinateRepresentationType, CoordinateRepresentationType > > MovingPointSetType
Definition elxMetricBase.h:116
itk::StatisticalShapePointPenalty::StatisticalShapePointPenalty
StatisticalShapePointPenalty()

Definition at line 68 of file elxStatisticalShapePenalty.h.

## Superclass2

template<class TElastix>

using elastix::StatisticalShapePenalty< TElastix >::Superclass2 = MetricBase<TElastix>

Definition at line 70 of file elxStatisticalShapePenalty.h.

## VnlVectorType

template<class TElastix>

using elastix::StatisticalShapePenalty< TElastix >::VnlVectorType = vnl_vector<CoordRepType>

Definition at line 110 of file elxStatisticalShapePenalty.h.

## Constructor & Destructor Documentation

## StatisticalShapePenalty()

template<class TElastix>

elastix::StatisticalShapePenalty< TElastix >::StatisticalShapePenalty | ( |  | ) |

protected default

The constructor.

## ~StatisticalShapePenalty()

template<class TElastix>

elastix::StatisticalShapePenalty< TElastix >::~StatisticalShapePenalty | ( |  | ) |

override protected default

The destructor.

## Member Function Documentation

## BeforeEachResolution()

template<class TElastix>

void elastix::StatisticalShapePenalty< TElastix >::BeforeEachResolution | ( |  | ) |

override virtual

Reimplemented from elastix::BaseComponent.

## BeforeRegistration()

template<class TElastix>

void elastix::StatisticalShapePenalty< TElastix >::BeforeRegistration | ( |  | ) |

override virtual

Do some things before registration:

- Load and set the pointsets.

Reimplemented from elastix::BaseComponent.

## elxClassNameMacro()

template<class TElastix>

elastix::StatisticalShapePenalty< TElastix >::elxClassNameMacro | ( | "StatisticalShapePenalty< TElastix >" |  | ) |

Name of this class. Use this name in the parameter file to select this specific metric.
example: (Metric "StatisticalShapePenalty")

## GetClassName()

template<class TElastix>

virtual const char * elastix::StatisticalShapePenalty< TElastix >::GetClassName | ( |  | ) | const

virtual

Run-time type information (and related methods).

Reimplemented from itk::StatisticalShapePointPenalty< TFixedPointSet, TMovingPointSet >.

## Initialize()

template<class TElastix>

void elastix::StatisticalShapePenalty< TElastix >::Initialize | ( |  | ) |

override virtual

Sets up a timer to measure the initialization time and calls the Superclass' implementation.

Reimplemented from itk::SingleValuedPointSetToPointSetMetric< TFixedPointSet, TMovingPointSet >.

## ITK_DISALLOW_COPY_AND_MOVE()

template<class TElastix>

elastix::StatisticalShapePenalty< TElastix >::ITK_DISALLOW_COPY_AND_MOVE | ( | StatisticalShapePenalty< TElastix > |  | ) |

## itkStaticConstMacro() [1/2]

template<class TElastix>

elastix::StatisticalShapePenalty< TElastix >::itkStaticConstMacro | ( | FixedImageDimension | ,
|  | unsigned int | ,
|  | FixedImageType::ImageDimension | )

The fixed image dimension.

## itkStaticConstMacro() [2/2]

template<class TElastix>

elastix::StatisticalShapePenalty< TElastix >::itkStaticConstMacro | ( | MovingImageDimension | ,
|  | unsigned int | ,
|  | MovingImageType::ImageDimension | )

The moving image dimension.

## New()

template<class TElastix>

Pointer elastix::StatisticalShapePenalty< TElastix >::New | ( |  | ) |

static

Method for creation through the object factory.

## ReadLandmarks()

template<class TElastix>

unsigned int elastix::StatisticalShapePenalty< TElastix >::ReadLandmarks | ( | const std::string & | landmarkFileName,
|  | typename PointSetType::Pointer & | pointSet,
|  | const typename ImageType::ConstPointer | image )

Function to read the corresponding points.

## ReadShape()

template<class TElastix>

unsigned int elastix::StatisticalShapePenalty< TElastix >::ReadShape | ( | const std::string & | ShapeFileName,
|  | typename PointSetType::Pointer & | pointSet )

## SelectNewSamples()

template<class TElastix>

void elastix::StatisticalShapePenalty< TElastix >::SelectNewSamples | ( |  | ) |

inline override virtual

Overwrite to silence warning.

Reimplemented from elastix::MetricBase< TElastix >.

Definition at line 167 of file elxStatisticalShapePenalty.h.

## Field Documentation

## elxOverrideGetSelfMacro

template<class TElastix>

elastix::StatisticalShapePenalty< TElastix >::elxOverrideGetSelfMacro

private

Definition at line 177 of file elxStatisticalShapePenalty.h.

Generated on 1768596610 for elastix by 1.15.0 |