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

#include <itkTransformBendingEnergyPenaltyTerm.h>

Detailed Description

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

A cost function that calculates the bending energy of a transformation.

The bending energy is defined as the sum of the spatial second order derivatives of the transformation, as defined in [1]. For rigid and affine transformation this energy is always zero.

[1]: D. Rueckert, L. I. Sonoda, C. Hayes, D. L. G. Hill, M. O. Leach, and D. J. Hawkes, "Nonrigid registration using free-form deformations: Application to breast MR images", IEEE Trans. Med. Imaging 18, 712-721, 1999.
[2]: M. Staring and S. Klein, "Itk::Transforms supporting spatial derivatives"", Insight Journal, http://hdl.handle.net/10380/3215.

Definition at line 50 of file itkTransformBendingEnergyPenaltyTerm.h.

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

Public Types

using ConstPointer = SmartPointer< const Self >
 
using Pointer = SmartPointer< Self >
 
using Self = TransformBendingEnergyPenaltyTerm
 
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 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
 

Public Member Functions

void AfterThreadedGetValueAndDerivative (MeasureType &value, DerivativeType &derivative) const override
 
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
 
virtual void GetValueAndDerivativeSingleThreaded (const ParametersType &parameters, MeasureType &value, DerivativeType &derivative) const
 
 ITK_DISALLOW_COPY_AND_MOVE (TransformBendingEnergyPenaltyTerm)
 
 itkStaticConstMacro (FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
 
void ThreadedGetValueAndDerivative (ThreadIdType threadID) const override
 
- Public Member Functions inherited from itk::TransformPenaltyTerm< TFixedImage, TScalarType >
 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 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 ()
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

 TransformBendingEnergyPenaltyTerm ()
 
 ~TransformBendingEnergyPenaltyTerm () 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 &) 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
 
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 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
 
FixedImageLimiterOutputType m_FixedImageMaxLimit
 
FixedImageLimiterOutputType m_FixedImageMinLimit
 
FixedImagePixelType m_FixedImageTrueMax
 
FixedImagePixelType m_FixedImageTrueMin
 
double m_FixedLimitRangeRatio
 
std::unique_ptr< AlignedGetValueAndDerivativePerThreadStruct[]> m_GetValueAndDerivativePerThreadVariables
 
ThreadIdType m_GetValueAndDerivativePerThreadVariablesSize
 
ImageSamplerPointer m_ImageSampler
 
MovingImageLimiterOutputType m_MovingImageMaxLimit
 
MovingImageLimiterOutputType m_MovingImageMinLimit
 
MovingImagePixelType m_MovingImageTrueMax
 
MovingImagePixelType m_MovingImageTrueMin
 
double m_MovingLimitRangeRatio
 
MultiThreaderParameterType m_ThreaderMetricParameters
 
bool m_TransformIsBSpline
 
bool m_UseMetricSingleThreaded
 
bool m_UseMultiThread
 

Member Typedef Documentation

◆ ConstPointer

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

Definition at line 59 of file itkTransformBendingEnergyPenaltyTerm.h.

◆ Pointer

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

Definition at line 58 of file itkTransformBendingEnergyPenaltyTerm.h.

◆ Self

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

Standard ITK stuff.

Definition at line 56 of file itkTransformBendingEnergyPenaltyTerm.h.

◆ Superclass

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

Definition at line 57 of file itkTransformBendingEnergyPenaltyTerm.h.

Constructor & Destructor Documentation

◆ TransformBendingEnergyPenaltyTerm()

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

The constructor.

◆ ~TransformBendingEnergyPenaltyTerm()

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

The destructor.

Member Function Documentation

◆ AfterThreadedGetValueAndDerivative()

template<class TFixedImage , class TScalarType >
void itk::TransformBendingEnergyPenaltyTerm< TFixedImage, TScalarType >::AfterThreadedGetValueAndDerivative ( MeasureType &  value,
DerivativeType &  derivative 
) const
overridevirtual

Gather the values and derivatives from all threads

Reimplemented from itk::AdvancedImageToImageMetric< TFixedImage, TFixedImage >.

◆ GetClassName()

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

Run-time type information (and related methods).

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

Reimplemented in elastix::TransformBendingEnergyPenalty< TElastix >.

◆ GetDerivative()

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

Get the penalty term derivative.

◆ GetValue()

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

Get the penalty term value.

◆ GetValueAndDerivative()

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

◆ GetValueAndDerivativeSingleThreaded()

template<class TFixedImage , class TScalarType >
virtual void itk::TransformBendingEnergyPenaltyTerm< TFixedImage, TScalarType >::GetValueAndDerivativeSingleThreaded ( const ParametersType &  parameters,
MeasureType &  value,
DerivativeType &  derivative 
) const
virtual

Get the penalty term value and derivative.

◆ ITK_DISALLOW_COPY_AND_MOVE()

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

◆ itkStaticConstMacro()

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

Define the dimension.

◆ New()

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

Method for creation through the object factory.

◆ ThreadedGetValueAndDerivative()

template<class TFixedImage , class TScalarType >
void itk::TransformBendingEnergyPenaltyTerm< TFixedImage, TScalarType >::ThreadedGetValueAndDerivative ( ThreadIdType  threadID) const
overridevirtual

Get value and derivatives for each thread.

Reimplemented from itk::AdvancedImageToImageMetric< TFixedImage, TFixedImage >.



Generated on 1739326392 for elastix by doxygen 1.9.8 elastix logo