go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions
itk::DisplacementMagnitudePenaltyTerm< TFixedImage, TScalarType > Class Template Reference

#include <itkDisplacementMagnitudePenaltyTerm.h>

Detailed Description

template<class TFixedImage, class TScalarType>
class itk::DisplacementMagnitudePenaltyTerm< TFixedImage, TScalarType >

A cost function that calculates $||T(x)-x||^2$.

Definition at line 34 of file itkDisplacementMagnitudePenaltyTerm.h.

+ Inheritance diagram for itk::DisplacementMagnitudePenaltyTerm< TFixedImage, TScalarType >:

Public Types

using ConstPointer = SmartPointer< const Self >
 
using Pointer = SmartPointer< Self >
 
using Self = DisplacementMagnitudePenaltyTerm
 
using Superclass = TransformPenaltyTerm< TFixedImage, TScalarType >
 
- Public Types inherited from itk::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
 
- Public Types inherited from itk::AdvancedImageToImageMetric< TFixedImage, TFixedImage >
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
 

Public Member Functions

virtual const char * GetClassName () const
 
void GetDerivative (const ParametersType &parameters, DerivativeType &derivative) const override
 
MeasureType GetValue (const ParametersType &parameters) const override
 
void GetValueAndDerivative (const ParametersType &parameters, MeasureType &value, DerivativeType &derivative) const override
 
 ITK_DISALLOW_COPY_AND_MOVE (DisplacementMagnitudePenaltyTerm)
 
 itkStaticConstMacro (FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
 
- Public Member Functions inherited from itk::TransformPenaltyTerm< TFixedImage, TScalarType >
virtual const char * GetClassName () const
 
 ITK_DISALLOW_COPY_AND_MOVE (TransformPenaltyTerm)
 
 itkStaticConstMacro (FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
 
- Public Member Functions inherited from itk::AdvancedImageToImageMetric< TFixedImage, TFixedImage >
virtual void BeforeThreadedGetValueAndDerivative (const TransformParametersType &parameters) const
 
virtual const char * GetClassName () const
 
virtual const FixedImageLimiterType * GetFixedImageLimiter ()
 
virtual double GetFixedLimitRangeRatio () const
 
virtual ImageSamplerType * GetImageSampler () const
 
virtual const MovingImageDerivativeScalesType & GetMovingImageDerivativeScales ()
 
virtual const MovingImageLimiterType * GetMovingImageLimiter ()
 
virtual double GetMovingLimitRangeRatio () const
 
virtual double GetRequiredRatioOfValidSamples () const
 
virtual bool GetScaleGradientWithRespectToMovingImageOrientation () const
 
virtual void GetSelfHessian (const TransformParametersType &parameters, HessianType &H) const
 
const AdvancedTransformType * GetTransform () const 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 SetFixedLimitRangeRatio (double _arg)
 
virtual void SetImageSampler (ImageSamplerType *_arg)
 
virtual void SetMovingImageDerivativeScales (MovingImageDerivativeScalesType _arg)
 
virtual void SetMovingImageLimiter (MovingImageLimiterType *_arg)
 
virtual void SetMovingLimitRangeRatio (double _arg)
 
virtual void SetNumberOfWorkUnits (ThreadIdType numberOfThreads)
 
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 ()
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

 DisplacementMagnitudePenaltyTerm ()
 
 ~DisplacementMagnitudePenaltyTerm () override=default
 
- Protected Member Functions inherited from itk::TransformPenaltyTerm< TFixedImage, TScalarType >
virtual bool CheckForBSplineTransform2 (BSplineOrder3TransformPointer &bspline) const
 
 TransformPenaltyTerm ()=default
 
 ~TransformPenaltyTerm () override=default
 
- Protected Member Functions inherited from itk::AdvancedImageToImageMetric< TFixedImage, TFixedImage >
 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
 

Additional Inherited Members

- Protected Types inherited from itk::AdvancedImageToImageMetric< TFixedImage, TFixedImage >
using BSplineInterpolatorFloatPointer = typename BSplineInterpolatorFloatType::Pointer
 
using BSplineInterpolatorFloatType = BSplineInterpolateImageFunction< MovingImageType, CoordinateRepresentationType, float >
 
using BSplineInterpolatorPointer = typename BSplineInterpolatorType::Pointer
 
using BSplineInterpolatorType = BSplineInterpolateImageFunction< MovingImageType, CoordinateRepresentationType, double >
 
using CentralDifferenceGradientFilterPointer = typename CentralDifferenceGradientFilterType::Pointer
 
using CentralDifferenceGradientFilterType = GradientImageFilter< MovingImageType, RealType, RealType >
 
using FixedImageIndexType = typename FixedImageType::IndexType
 
using FixedImageIndexValueType = typename FixedImageIndexType::IndexValueType
 
using FixedImagePointType = typename TransformType::InputPointType
 
using LinearInterpolatorPointer = typename LinearInterpolatorType::Pointer
 
using LinearInterpolatorType = AdvancedLinearInterpolateImageFunction< MovingImageType, CoordinateRepresentationType >
 
using MovingImageContinuousIndexType = typename InterpolatorType::ContinuousIndexType
 
using MovingImageDerivativeType = typename BSplineInterpolatorType::CovariantVectorType
 
using MovingImageIndexType = typename MovingImageType::IndexType
 
using MovingImagePointType = typename TransformType::OutputPointType
 
using NonZeroJacobianIndicesType = typename AdvancedTransformType::NonZeroJacobianIndicesType
 
using ReducedBSplineInterpolatorPointer = typename ReducedBSplineInterpolatorType::Pointer
 
using ReducedBSplineInterpolatorType = ReducedDimensionBSplineInterpolateImageFunction< MovingImageType, CoordinateRepresentationType, double >
 
- Static Protected Member Functions inherited from itk::AdvancedImageToImageMetric< TFixedImage, TFixedImage >
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION AccumulateDerivativesThreaderCallback (void *arg)
 
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION GetValueAndDerivativeThreaderCallback (void *arg)
 
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION GetValueThreaderCallback (void *arg)
 
- Protected Attributes inherited from itk::AdvancedImageToImageMetric< TFixedImage, TFixedImage >
AdvancedTransformType::Pointer m_AdvancedTransform
 
BSplineInterpolatorPointer m_BSplineInterpolator
 
BSplineInterpolatorFloatPointer m_BSplineInterpolatorFloat
 
CentralDifferenceGradientFilterPointer m_CentralDifferenceGradientFilter
 
FixedImageLimiterPointer m_FixedImageLimiter
 
FixedImageLimiterOutputType m_FixedImageMaxLimit
 
FixedImageLimiterOutputType m_FixedImageMinLimit
 
FixedImagePixelType m_FixedImageTrueMax
 
FixedImagePixelType m_FixedImageTrueMin
 
double m_FixedLimitRangeRatio
 
std::unique_ptr< AlignedGetValueAndDerivativePerThreadStruct[]> m_GetValueAndDerivativePerThreadVariables
 
ThreadIdType m_GetValueAndDerivativePerThreadVariablesSize
 
std::unique_ptr< AlignedGetValuePerThreadStruct[]> m_GetValuePerThreadVariables
 
ThreadIdType m_GetValuePerThreadVariablesSize
 
ImageSamplerPointer m_ImageSampler
 
bool m_InterpolatorIsBSpline
 
bool m_InterpolatorIsBSplineFloat
 
bool m_InterpolatorIsLinear
 
bool m_InterpolatorIsReducedBSpline
 
LinearInterpolatorPointer m_LinearInterpolator
 
MovingImageLimiterPointer m_MovingImageLimiter
 
MovingImageLimiterOutputType m_MovingImageMaxLimit
 
MovingImageLimiterOutputType m_MovingImageMinLimit
 
MovingImagePixelType m_MovingImageTrueMax
 
MovingImagePixelType m_MovingImageTrueMin
 
double m_MovingLimitRangeRatio
 
ReducedBSplineInterpolatorPointer m_ReducedBSplineInterpolator
 
MultiThreaderParameterType m_ThreaderMetricParameters
 
bool m_TransformIsAdvanced
 
bool m_TransformIsBSpline
 
bool m_UseMetricSingleThreaded
 
bool m_UseMultiThread
 
bool m_UseOpenMP
 

Member Typedef Documentation

◆ ConstPointer

template<class TFixedImage , class TScalarType >
using itk::DisplacementMagnitudePenaltyTerm< TFixedImage, TScalarType >::ConstPointer = SmartPointer<const Self>

Definition at line 43 of file itkDisplacementMagnitudePenaltyTerm.h.

◆ Pointer

template<class TFixedImage , class TScalarType >
using itk::DisplacementMagnitudePenaltyTerm< TFixedImage, TScalarType >::Pointer = SmartPointer<Self>

Definition at line 42 of file itkDisplacementMagnitudePenaltyTerm.h.

◆ Self

template<class TFixedImage , class TScalarType >
using itk::DisplacementMagnitudePenaltyTerm< TFixedImage, TScalarType >::Self = DisplacementMagnitudePenaltyTerm

Standard ITK stuff.

Definition at line 40 of file itkDisplacementMagnitudePenaltyTerm.h.

◆ Superclass

template<class TFixedImage , class TScalarType >
using itk::DisplacementMagnitudePenaltyTerm< TFixedImage, TScalarType >::Superclass = TransformPenaltyTerm<TFixedImage, TScalarType>

Definition at line 41 of file itkDisplacementMagnitudePenaltyTerm.h.

Constructor & Destructor Documentation

◆ DisplacementMagnitudePenaltyTerm()

template<class TFixedImage , class TScalarType >
itk::DisplacementMagnitudePenaltyTerm< TFixedImage, TScalarType >::DisplacementMagnitudePenaltyTerm ( )
protected

The constructor.

◆ ~DisplacementMagnitudePenaltyTerm()

template<class TFixedImage , class TScalarType >
itk::DisplacementMagnitudePenaltyTerm< TFixedImage, TScalarType >::~DisplacementMagnitudePenaltyTerm ( )
overrideprotecteddefault

The destructor.

Member Function Documentation

◆ GetClassName()

template<class TFixedImage , class TScalarType >
virtual const char * itk::DisplacementMagnitudePenaltyTerm< TFixedImage, TScalarType >::GetClassName ( ) const
virtual

Run-time type information (and related methods).

Reimplemented from itk::TransformPenaltyTerm< TFixedImage, TScalarType >.

Reimplemented in elastix::DisplacementMagnitudePenalty< TElastix >.

◆ GetDerivative()

template<class TFixedImage , class TScalarType >
void itk::DisplacementMagnitudePenaltyTerm< TFixedImage, TScalarType >::GetDerivative ( const ParametersType &  parameters,
DerivativeType &  derivative 
) const
override

Get the penalty term derivative. Simply calls GetValueAndDerivative and returns the derivative.

◆ GetValue()

template<class TFixedImage , class TScalarType >
MeasureType itk::DisplacementMagnitudePenaltyTerm< TFixedImage, TScalarType >::GetValue ( const ParametersType &  parameters) const
override

Get the penalty term value.

\[ Value = 1/N sum_x ||T(x) - x||^2 \]

◆ GetValueAndDerivative()

template<class TFixedImage , class TScalarType >
void itk::DisplacementMagnitudePenaltyTerm< TFixedImage, TScalarType >::GetValueAndDerivative ( const ParametersType &  parameters,
MeasureType &  value,
DerivativeType &  derivative 
) const
override

Get the penalty term value and derivative.

\[ Value = C(\mu) = 1/N sum_x ||T_{\mu}(x) - x||^2 \]

\[ Derivative = \frac{\partial C}{\partial\mu} = 2/N sum_x (T_{\mu}(x)-x)' \frac{\partial T}{\partial \mu} \]

◆ ITK_DISALLOW_COPY_AND_MOVE()

template<class TFixedImage , class TScalarType >
itk::DisplacementMagnitudePenaltyTerm< TFixedImage, TScalarType >::ITK_DISALLOW_COPY_AND_MOVE ( DisplacementMagnitudePenaltyTerm< TFixedImage, TScalarType >  )

◆ itkStaticConstMacro()

template<class TFixedImage , class TScalarType >
itk::DisplacementMagnitudePenaltyTerm< TFixedImage, TScalarType >::itkStaticConstMacro ( FixedImageDimension  ,
unsigned int  ,
FixedImageType::ImageDimension   
)

Define the dimension.

◆ New()

template<class TFixedImage , class TScalarType >
static Pointer itk::DisplacementMagnitudePenaltyTerm< TFixedImage, TScalarType >::New ( )
static

Method for creation through the object factory.



Generated on 1687403667 for elastix by doxygen 1.9.4 elastix logo