ITK  4.2.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Private Member Functions | Private Attributes | Friends
itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage > Class Template Reference

#include <itkDemonsImageToImageMetricv4.h>

+ Inheritance diagram for itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >:
+ Collaboration diagram for itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >:

List of all members.

Public Types

typedef SmartPointer< const SelfConstPointer
typedef Superclass::DerivativeType DerivativeType
typedef
Superclass::FixedImageGradientType 
FixedImageGradientType
typedef
Superclass::FixedImagePixelType 
FixedImagePixelType
typedef
Superclass::FixedImagePointType 
FixedImagePointType
typedef
Superclass::ImageDimensionType 
ImageDimensionType
typedef
Superclass::InternalComputationValueType 
InternalComputationValueType
typedef Superclass::JacobianType JacobianType
typedef Superclass::MeasureType MeasureType
typedef
Superclass::MovingImageGradientType 
MovingImageGradientType
typedef
Superclass::MovingImagePixelType 
MovingImagePixelType
typedef
Superclass::MovingImagePointType 
MovingImagePointType
typedef
Superclass::MovingTransformType 
MovingTransformType
typedef
Superclass::NumberOfParametersType 
NumberOfParametersType
typedef SmartPointer< SelfPointer
typedef DemonsImageToImageMetricv4 Self
typedef ImageToImageMetricv4
< TFixedImage, TMovingImage,
TVirtualImage > 
Superclass
typedef
Superclass::VirtualImageType 
VirtualImageType
typedef
Superclass::VirtualIndexType 
VirtualIndexType
typedef
Superclass::VirtualPointType 
VirtualPointType
typedef
Superclass::VirtualSampledPointSetType 
VirtualSampledPointSetType

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual
InternalComputationValueType 
GetDenominatorThreshold () const
virtual const char * GetNameOfClass () const
virtual void Initialize (void) throw ( itk::ExceptionObject )
virtual
InternalComputationValueType 
GetIntensityDifferenceThreshold () const
virtual void SetIntensityDifferenceThreshold (InternalComputationValueType _arg)

Static Public Member Functions

static Pointer New ()

Static Public Attributes

static const ImageDimensionType FixedImageDimension = ::itk::GetImageDimension<TFixedImage>::ImageDimension
static const ImageDimensionType MovingImageDimension = ::itk::GetImageDimension<TMovingImage>::ImageDimension
static const ImageDimensionType VirtualImageDimension = ::itk::GetImageDimension<TVirtualImage>::ImageDimension

Protected Types

typedef
DemonsImageToImageMetricv4GetValueAndDerivativeThreader
< ThreadedImageRegionPartitioner
< Superclass::VirtualImageDimension >
, Superclass, Self
DemonsDenseGetValueAndDerivativeThreaderType
typedef
DemonsImageToImageMetricv4GetValueAndDerivativeThreader
< ThreadedIndexedContainerPartitioner,
Superclass, Self
DemonsSparseGetValueAndDerivativeThreaderType

Protected Member Functions

 DemonsImageToImageMetricv4 ()
virtual
InternalComputationValueType 
GetNormalizer () const
void PrintSelf (std::ostream &os, Indent indent) const
virtual ~DemonsImageToImageMetricv4 ()

Private Member Functions

 DemonsImageToImageMetricv4 (const Self &)
void operator= (const Self &)

Private Attributes

InternalComputationValueType m_DenominatorThreshold
InternalComputationValueType m_IntensityDifferenceThreshold
InternalComputationValueType m_Normalizer

Friends

class DemonsImageToImageMetricv4GetValueAndDerivativeThreader< ThreadedImageRegionPartitioner< Superclass::VirtualImageDimension >, Superclass, Self >
class DemonsImageToImageMetricv4GetValueAndDerivativeThreader< ThreadedIndexedContainerPartitioner, Superclass, Self >

Detailed Description

template<class TFixedImage, class TMovingImage, class TVirtualImage = TFixedImage>
class itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >

Class implementing demons metric.

The implementation is taken from itkDemonsRegistrationFunction.

The metric derivative can be calculated using image derivatives either from the fixed or moving images. The default is to use fixed-image gradients. See ObjectToObjectMetric::SetGradientSource to change this behavior.

An intensity threshold is used, below which image pixels are considered equal for the purpose of derivative calculation. The threshold can be changed by calling SetIntensityDifferenceThreshold.

Note:
This metric supports only moving transforms with local support and with a number of local parameters that matches the moving image dimension. In particular, it's meant to be used with itkDisplacementFieldTransform and derived classes.

See DemonsImageToImageMetricv4GetValueAndDerivativeThreader::ProcessPoint for algorithm implementation.

See also:
itkImageToImageMetricv4

Definition at line 55 of file itkDemonsImageToImageMetricv4.h.


Member Typedef Documentation

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef SmartPointer<const Self> itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::ConstPointer
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef DemonsImageToImageMetricv4GetValueAndDerivativeThreader< ThreadedImageRegionPartitioner< Superclass::VirtualImageDimension >, Superclass, Self > itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::DemonsDenseGetValueAndDerivativeThreaderType [protected]

Definition at line 124 of file itkDemonsImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef DemonsImageToImageMetricv4GetValueAndDerivativeThreader< ThreadedIndexedContainerPartitioner, Superclass, Self > itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::DemonsSparseGetValueAndDerivativeThreaderType [protected]

Definition at line 126 of file itkDemonsImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::DerivativeType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::DerivativeType

Type of the metric derivative.

Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.

Definition at line 73 of file itkDemonsImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::FixedImageGradientType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedImageGradientType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::FixedImagePixelType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedImagePixelType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::FixedImagePointType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedImagePointType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::ImageDimensionType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::ImageDimensionType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::InternalComputationValueType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::InternalComputationValueType

Type used internally for computations

Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.

Definition at line 92 of file itkDemonsImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::JacobianType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::JacobianType

Jacobian type. This is the same for all transforms

Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.

Definition at line 84 of file itkDemonsImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::MeasureType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MeasureType

Superclass types

Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.

Definition at line 69 of file itkDemonsImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::MovingImageGradientType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingImageGradientType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::MovingImagePixelType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingImagePixelType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::MovingImagePointType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingImagePointType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::MovingTransformType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingTransformType

Type of the Transform Base classes

Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.

Definition at line 83 of file itkDemonsImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::NumberOfParametersType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::NumberOfParametersType

Type to represent the number of parameters that are being optimized at any given iteration of the optimizer.

Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.

Definition at line 90 of file itkDemonsImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef SmartPointer<Self> itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::Pointer
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef DemonsImageToImageMetricv4 itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::Self

Standard class typedefs.

Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.

Definition at line 60 of file itkDemonsImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef ImageToImageMetricv4<TFixedImage, TMovingImage, TVirtualImage> itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::Superclass
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::VirtualImageType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::VirtualImageType

Types for the virtual domain

Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.

Definition at line 85 of file itkDemonsImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::VirtualIndexType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::VirtualIndexType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::VirtualPointType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::VirtualPointType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::VirtualSampledPointSetType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::VirtualSampledPointSetType

Constructor & Destructor Documentation

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::DemonsImageToImageMetricv4 ( ) [protected]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
virtual itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::~DemonsImageToImageMetricv4 ( ) [protected, virtual]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::DemonsImageToImageMetricv4 ( const Self ) [private]

Member Function Documentation

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
virtual::itk::LightObject::Pointer itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::CreateAnother ( void  ) const [virtual]

Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.

Reimplemented from itk::Object.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
virtual InternalComputationValueType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::GetDenominatorThreshold ( ) const [virtual]

Get the denominator threshold used in derivative calculation.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
virtual InternalComputationValueType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::GetIntensityDifferenceThreshold ( ) const [virtual]

Accessors for the image intensity difference threshold use in derivative calculation

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
virtual const char* itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::GetNameOfClass ( ) const [virtual]

Run-time type information (and related methods).

Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
virtual InternalComputationValueType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::GetNormalizer ( ) const [protected, virtual]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
virtual void itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::Initialize ( void  ) throw ( itk::ExceptionObject ) [virtual]

Initialize the Metric by making sure that all the components are present and plugged together correctly, and initializing internal variables as required. This is for one-time initialization, e.g. before starting an optimization process.

Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
static Pointer itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::New ( ) [static]

Method for creation through the object factory.

Reimplemented from itk::Object.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
void itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::operator= ( const Self ) [private]

Mutex lock to protect modification to the reference count

Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
void itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const [protected, virtual]

Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
virtual void itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::SetIntensityDifferenceThreshold ( InternalComputationValueType  _arg) [virtual]

Accessors for the image intensity difference threshold use in derivative calculation


Friends And Related Function Documentation

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
friend class DemonsImageToImageMetricv4GetValueAndDerivativeThreader< ThreadedImageRegionPartitioner< Superclass::VirtualImageDimension >, Superclass, Self > [friend]

Definition at line 121 of file itkDemonsImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
friend class DemonsImageToImageMetricv4GetValueAndDerivativeThreader< ThreadedIndexedContainerPartitioner, Superclass, Self > [friend]

Definition at line 122 of file itkDemonsImageToImageMetricv4.h.


Member Data Documentation

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
const ImageDimensionType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedImageDimension = ::itk::GetImageDimension<TFixedImage>::ImageDimension [static]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
InternalComputationValueType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::m_DenominatorThreshold [private]

Threshold below which the denominator term is considered zero. Fixed programatically in constructor.

Definition at line 134 of file itkDemonsImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
InternalComputationValueType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::m_IntensityDifferenceThreshold [private]

Threshold below which two intensity value are assumed to match.

Definition at line 137 of file itkDemonsImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
InternalComputationValueType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::m_Normalizer [private]

Definition at line 140 of file itkDemonsImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
const ImageDimensionType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingImageDimension = ::itk::GetImageDimension<TMovingImage>::ImageDimension [static]
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
const ImageDimensionType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::VirtualImageDimension = ::itk::GetImageDimension<TVirtualImage>::ImageDimension [static]

The documentation for this class was generated from the following file: