ITK  4.2.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions
itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage > Class Template Reference

#include <itkObjectToObjectMetric.h>

+ Inheritance diagram for itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >:
+ Collaboration diagram for itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >:

List of all members.

Public Types

typedef SmartPointer< const SelfConstPointer
typedef
Superclass::ParametersValueType 
CoordinateRepresentationType
typedef Superclass::DerivativeType DerivativeType
typedef
Superclass::DerivativeValueType 
DerivativeValueType
typedef SizeValueType DimensionType
typedef
FixedTransformType::InputPointType 
FixedInputPointType
typedef
FixedTransformType::OutputPointType 
FixedOutputPointType
typedef
FixedTransformType::JacobianType 
FixedTransformJacobianType
typedef
FixedTransformType::ParametersType 
FixedTransformParametersType
typedef FixedTransformType::Pointer FixedTransformPointer
typedef Transform
< ParametersValueType,
TVirtualImage::ImageDimension,
TFixedDimension > 
FixedTransformType
typedef
Superclass::InternalComputationValueType 
InternalComputationValueType
typedef
FixedTransformType::JacobianType 
JacobianType
typedef Superclass::MeasureType MeasureType
typedef
DisplacementFieldTransform
< CoordinateRepresentationType,
itkGetStaticConstMacro(MovingDimension) > 
MovingDisplacementFieldTransformType
typedef
MovingTransformType::InputPointType 
MovingInputPointType
typedef
MovingTransformType::OutputPointType 
MovingOutputPointType
typedef
MovingTransformType::JacobianType 
MovingTransformJacobianType
typedef
MovingTransformType::ParametersType 
MovingTransformParametersType
typedef
MovingTransformType::Pointer 
MovingTransformPointer
typedef Transform
< ParametersValueType,
TVirtualImage::ImageDimension,
TMovingDimension > 
MovingTransformType
typedef
Superclass::NumberOfParametersType 
NumberOfParametersType
typedef Superclass::ParametersType ParametersType
typedef
Superclass::ParametersValueType 
ParametersValueType
typedef SmartPointer< SelfPointer
typedef ObjectToObjectMetric Self
typedef ObjectToObjectMetricBase Superclass
typedef
VirtualImageType::DirectionType 
VirtualDirectionType
typedef
VirtualImageType::ConstPointer 
VirtualImageConstPointer
typedef VirtualImageType::Pointer VirtualImagePointer
typedef TVirtualImage VirtualImageType
typedef VirtualImageType::IndexType VirtualIndexType
typedef VirtualImageType::PointType VirtualOriginType
typedef VirtualImageType::PixelType VirtualPixelType
typedef
VirtualPointSetType::Pointer 
VirtualPointSetPointer
typedef PointSet
< VirtualPixelType,
itkGetStaticConstMacro(VirtualDimension)> 
VirtualPointSetType
typedef VirtualImageType::PointType VirtualPointType
typedef VirtualImageType::SizeType VirtualRadiusType
typedef
VirtualImageType::RegionType 
VirtualRegionType
typedef VirtualRegionType::SizeType VirtualSizeType
typedef
VirtualImageType::SpacingType 
VirtualSpacingType
- Public Types inherited from itk::ObjectToObjectMetricBase
enum  GradientSourceType {
  GRADIENT_SOURCE_FIXED = 0,
  GRADIENT_SOURCE_MOVING,
  GRADIENT_SOURCE_BOTH
}
- Public Types inherited from itk::SingleValuedCostFunctionv4
- Public Types inherited from itk::CostFunction
- Public Types inherited from itk::Object
- Public Types inherited from itk::LightObject

Public Member Functions

OffsetValueType ComputeParameterOffsetFromVirtualIndex (const VirtualIndexType &index, const NumberOfParametersType &numberOfLocalParameters) const
OffsetValueType ComputeParameterOffsetFromVirtualPoint (const VirtualPointType &point, const NumberOfParametersType &numberOfLocalParameters) const
virtual const FixedTransformTypeGetFixedTransform ()
virtual const MovingTransformTypeGetMovingTransform ()
virtual const char * GetNameOfClass () const
virtual NumberOfParametersType GetNumberOfLocalParameters () const
virtual NumberOfParametersType GetNumberOfParameters () const
virtual SizeValueType GetNumberOfValidPoints () const
virtual const ParametersTypeGetParameters () const
const MovingTransformTypeGetTransform ()
VirtualDirectionType GetVirtualDirection (void) const
virtual const TimeStampGetVirtualDomainTimeStamp (void) const
virtual const VirtualImageTypeGetVirtualImage ()
VirtualOriginType GetVirtualOrigin (void) const
const VirtualRegionTypeGetVirtualRegion (void) const
VirtualSpacingType GetVirtualSpacing (void) const
virtual bool HasLocalSupport () const
virtual void Initialize (void) throw ( ExceptionObject )
virtual void SetFixedTransform (FixedTransformType *_arg)
virtual void SetMovingTransform (MovingTransformType *_arg)
virtual void SetParameters (ParametersType &params)
void SetTransform (MovingTransformType *transform)
void SetVirtualDomain (const VirtualSpacingType &spacing, const VirtualOriginType &origin, const VirtualDirectionType &direction, const VirtualRegionType &region)
virtual bool SupportsArbitraryVirtualDomainSamples (void) const =0
virtual void UpdateTransformParameters (const DerivativeType &derivative, ParametersValueType factor)
void SetVirtualDomainFromImage (VirtualImageType *virtualImage)
void SetVirtualDomainFromImage (const VirtualImageType *virtualImage)
bool IsInsideVirtualDomain (const VirtualPointType &point) const
bool IsInsideVirtualDomain (const VirtualIndexType &index) const
- Public Member Functions inherited from itk::ObjectToObjectMetricBase
MeasureType GetCurrentValue () const
virtual void GetDerivative (DerivativeType &) const =0
virtual GradientSourceType GetGradientSource () const
bool GetGradientSourceIncludesFixed () const
bool GetGradientSourceIncludesMoving () const
virtual MeasureType GetValue () const =0
virtual void GetValueAndDerivative (MeasureType &value, DerivativeType &derivative) const =0
virtual void SetGradientSource (GradientSourceType _arg)
- Public Member Functions inherited from itk::SingleValuedCostFunctionv4
virtual void GetValueAndDerivative (MeasureType &value, DerivativeType &derivative) const =0

Static Public Attributes

static const DimensionType FixedDimension = TFixedDimension
static const DimensionType MovingDimension = TMovingDimension
static const DimensionType VirtualDimension = TVirtualImage::ImageDimension

Protected Member Functions

MovingDisplacementFieldTransformTypeGetMovingDisplacementFieldTransform () const
 ObjectToObjectMetric ()
void PrintSelf (std::ostream &os, Indent indent) const
bool TransformPhysicalPointToVirtualIndex (const VirtualPointType &, VirtualIndexType &) const
void TransformVirtualIndexToPhysicalPoint (const VirtualIndexType &, VirtualPointType &) const
virtual void VerifyDisplacementFieldSizeAndPhysicalSpace ()
bool VerifyNumberOfValidPoints (MeasureType &value, DerivativeType &derivative) const
virtual ~ObjectToObjectMetric ()
- Protected Member Functions inherited from itk::ObjectToObjectMetricBase
 ObjectToObjectMetricBase ()
virtual ~ObjectToObjectMetricBase ()
- Protected Member Functions inherited from itk::SingleValuedCostFunctionv4
 SingleValuedCostFunctionv4 ()
virtual ~SingleValuedCostFunctionv4 ()
- Protected Member Functions inherited from itk::CostFunction
 CostFunction ()
virtual ~CostFunction ()
- Protected Member Functions inherited from itk::Object
 Object ()
bool PrintObservers (std::ostream &os, Indent indent) const
virtual void SetTimeStamp (const TimeStamp &time)
virtual ~Object ()
- Protected Member Functions inherited from itk::LightObject
virtual LightObject::Pointer InternalClone () const
 LightObject ()
virtual void PrintHeader (std::ostream &os, Indent indent) const
virtual void PrintTrailer (std::ostream &os, Indent indent) const
virtual ~LightObject ()

Protected Attributes

FixedTransformPointer m_FixedTransform
MovingTransformPointer m_MovingTransform
SizeValueType m_NumberOfValidPoints
bool m_UserHasSetVirtualDomain
VirtualImagePointer m_VirtualImage
- Protected Attributes inherited from itk::ObjectToObjectMetricBase
GradientSourceType m_GradientSource
MeasureType m_Value

Private Member Functions

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

Detailed Description

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
class itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >

Computes similarity between regions of two objects.

This class is templated over the dimensionality of the two input objects. This is the abstract templated base class for a hierarchy of similarity metrics that may, in derived classes, operate on meshes, images, etc. This class computes a value that measures the similarity between the two objects.

Derived classes must provide implementations for: GetValue GetDerivative GetValueAndDerivative SupportsArbitraryVirtualDomainSamples

Similarity is evaluated using fixed and moving transforms. Both transforms are initialized to an IdentityTransform, and can be set by the user using SetFixedTranform() and SetMovingTransform().

Virtual Domain

This class uses a virtual reference space. This space defines the resolution at which the evaluation is performed, as well as the physical coordinate system. This is useful for unbiased registration. The virtual domain is stored in the m_VirtualDomain member, but this is subject to change so the convenience methods GetVirtualSpacing(), GetVirtualDirection() and GetVirtualOrigin() should be used whenever possible to retrieve virtual domain information. The region over which metric evaluation is performed is taken from the virtual image buffered region.

The user can define a virtual domain by calling either SetVirtualDomain or SetVirtualDomainFromImage. See these methods for details. Derived classes may automatically assign a virtual domain if the user has not assigned one by initialization time.

If the virtual domain is left undefined by the user and by derived classes, then unit or zero values are returned for GetVirtualSpacing(), GetVirtualDirection() and GetVirtualOrigin(), as appropriate. The virtual region is left undefined and an attempt to retrieve it via GetVirtualRegion() will generate an exception. The m_VirtualImage member will be NULL.

During evaluation, derived classes should verify that points are within the virtual domain and thus valid, as appropriate for the needs of the metric. When points are deemed invalid the number of valid points returned by GetNumberOfValidPoints() should reflect this.

Note:
Transform Optimization This hierarchy currently assumes only the moving transform is 'active', i.e. only the moving transform is being optimized when used in an optimizer. Methods relevant to transform optimization such as GetNumberOfParameters(), UpdateTransformParameters() and HasLocalSupport() are passed on to the active transform. The eventual goal however is to allow for either moving, fixed or both transforms to be active within a single metric.

Definition at line 86 of file itkObjectToObjectMetric.h.


Member Typedef Documentation

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef SmartPointer< const Self > itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::ConstPointer
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef Superclass::ParametersValueType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::CoordinateRepresentationType
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef Superclass::DerivativeType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::DerivativeType
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef Superclass::DerivativeValueType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::DerivativeValueType
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef SizeValueType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::DimensionType
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef FixedTransformType::InputPointType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::FixedInputPointType
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef FixedTransformType::OutputPointType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::FixedOutputPointType
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef FixedTransformType::JacobianType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::FixedTransformJacobianType
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef FixedTransformType::ParametersType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::FixedTransformParametersType
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef FixedTransformType::Pointer itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::FixedTransformPointer
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef Transform<ParametersValueType, TVirtualImage::ImageDimension, TFixedDimension> itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::FixedTransformType
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef Superclass::InternalComputationValueType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::InternalComputationValueType
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef FixedTransformType::JacobianType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::JacobianType
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef Superclass::MeasureType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::MeasureType
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef DisplacementFieldTransform<CoordinateRepresentationType, itkGetStaticConstMacro( MovingDimension ) > itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::MovingDisplacementFieldTransformType

DisplacementFieldTransform types for working with local-support transforms

Definition at line 164 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef MovingTransformType::InputPointType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::MovingInputPointType
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef MovingTransformType::OutputPointType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::MovingOutputPointType
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef MovingTransformType::JacobianType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::MovingTransformJacobianType
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef MovingTransformType::ParametersType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::MovingTransformParametersType
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef MovingTransformType::Pointer itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::MovingTransformPointer
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef Transform<ParametersValueType, TVirtualImage::ImageDimension, TMovingDimension> itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::MovingTransformType
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef Superclass::NumberOfParametersType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::NumberOfParametersType
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef Superclass::ParametersType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::ParametersType
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef Superclass::ParametersValueType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::ParametersValueType
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef SmartPointer< Self > itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::Pointer
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef ObjectToObjectMetric itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::Self
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef ObjectToObjectMetricBase itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::Superclass
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef VirtualImageType::DirectionType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::VirtualDirectionType
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef VirtualImageType::ConstPointer itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::VirtualImageConstPointer

Definition at line 129 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef VirtualImageType::Pointer itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::VirtualImagePointer
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef TVirtualImage itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::VirtualImageType
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef VirtualImageType::IndexType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::VirtualIndexType
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef VirtualImageType::PointType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::VirtualOriginType
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef VirtualImageType::PixelType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::VirtualPixelType
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef VirtualPointSetType::Pointer itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::VirtualPointSetPointer
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef PointSet<VirtualPixelType, itkGetStaticConstMacro(VirtualDimension)> itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::VirtualPointSetType
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef VirtualImageType::PointType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::VirtualPointType
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef VirtualImageType::SizeType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::VirtualRadiusType
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef VirtualImageType::RegionType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::VirtualRegionType
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef VirtualRegionType::SizeType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::VirtualSizeType
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
typedef VirtualImageType::SpacingType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::VirtualSpacingType

Constructor & Destructor Documentation

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::ObjectToObjectMetric ( )
protected
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
virtual itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::~ObjectToObjectMetric ( )
protectedvirtual
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::ObjectToObjectMetric ( const Self )
private

Member Function Documentation

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
OffsetValueType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::ComputeParameterOffsetFromVirtualIndex ( const VirtualIndexType index,
const NumberOfParametersType numberOfLocalParameters 
) const

Computes an offset for accessing parameter data from a virtual domain index. Relevant for metrics with local-support transforms, to access parameter or derivative memory that is stored linearly in a 1D array. The result is the offset (1D array index) to the first of N parameters corresponding to the given virtual index, where N is the number of local parameters.

Parameters:
indexthe virtual index to convert
numberOfLocalParameterscorresponding to the transform
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
OffsetValueType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::ComputeParameterOffsetFromVirtualPoint ( const VirtualPointType point,
const NumberOfParametersType numberOfLocalParameters 
) const

Computes an offset for accessing parameter data from a virtual domain point. Relevant for metrics with local-support transforms, to access parameter or derivative memory that is stored linearly in a 1D array. The result is the offset (1D array index) to the first of N parameters corresponding to the given virtual index, where N is the number of local parameters.

Parameters:
pointthe virtual point to convert
numberOfLocalParameterscorresponding to the transform
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
virtual const FixedTransformType* itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::GetFixedTransform ( )
virtual

Get a pointer to the fixed transform.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
MovingDisplacementFieldTransformType* itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::GetMovingDisplacementFieldTransform ( ) const
protected

If the moving transform is a DisplacementFieldTransform, return it. If the moving transform is a CompositeTransform, the routine will check if the first (last to be added) transform is a DisplacementFieldTransform, and if so return it. Otherwise, return NULL.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
virtual const MovingTransformType* itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::GetMovingTransform ( )
virtual

Get a pointer to the moving transform.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
virtual const char* itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::GetNameOfClass ( ) const
virtual
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
virtual NumberOfParametersType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::GetNumberOfLocalParameters ( ) const
virtual

Methods for working with the metric's 'active' transform, e.g. the transform being optimized in the case of registration. Some of these are used in non-metric classes, e.g. optimizers.

Implements itk::ObjectToObjectMetricBase.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
virtual NumberOfParametersType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::GetNumberOfParameters ( ) const
virtual

Methods for working with the metric's 'active' transform, e.g. the transform being optimized in the case of registration. Some of these are used in non-metric classes, e.g. optimizers.

Implements itk::ObjectToObjectMetricBase.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
virtual SizeValueType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::GetNumberOfValidPoints ( ) const
virtual

Get the number of valid points after a call to evaluate the metric.

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

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
virtual const ParametersType& itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::GetParameters ( ) const
virtual

Get a const reference to the active transform's parameters

Implements itk::ObjectToObjectMetricBase.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
const MovingTransformType* itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::GetTransform ( )

Get the moving transform using a backwards-compatible name

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
VirtualDirectionType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::GetVirtualDirection ( void  ) const

Accessor for virtual domain direction. Returns unit direction if a virtual domain is undefined.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
virtual const TimeStamp& itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::GetVirtualDomainTimeStamp ( void  ) const
virtual

Return a timestamp relating to the virtual domain. This returns the greater of the metric timestamp and the virtual domain image timestamp. This allows us to capture if the virtual domain image is changed by the user after being assigned to the metric.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
virtual const VirtualImageType* itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::GetVirtualImage ( )
virtual
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
VirtualOriginType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::GetVirtualOrigin ( void  ) const

Accessor for virtual domain origin. Returns zero origin if a virtual domain is undefined.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
const VirtualRegionType& itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::GetVirtualRegion ( void  ) const

Return the virtual domain region, which is retrieved from the m_VirtualImage buffered region.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
VirtualSpacingType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::GetVirtualSpacing ( void  ) const

Accessors for the virtual domain spacing. Returns unit spacing if a virtual domain is undefined.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
virtual bool itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::HasLocalSupport ( ) const
virtual

Return whether the metric's active transform has local support, e.g. whether it is dense/high-dimensional.

Implements itk::ObjectToObjectMetricBase.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
virtual void itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::Initialize ( void  ) throw ( ExceptionObject )
virtual
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
bool itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::IsInsideVirtualDomain ( const VirtualPointType point) const

Determine if a point is within the virtual domain.

Note:
Returns true if the virtual domain has not been defined. This allows, for example, use in point set metrics where the virtual domain is implicitly defined by the point sets and transforms.
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
bool itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::IsInsideVirtualDomain ( const VirtualIndexType index) const

Determine if a point is within the virtual domain.

Note:
Returns true if the virtual domain has not been defined. This allows, for example, use in point set metrics where the virtual domain is implicitly defined by the point sets and transforms.
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
void itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::operator= ( const Self )
private
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
void itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
protectedvirtual
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
virtual void itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::SetFixedTransform ( FixedTransformType _arg)
virtual

Connect the fixed transform.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
virtual void itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::SetMovingTransform ( MovingTransformType _arg)
virtual
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
virtual void itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::SetParameters ( ParametersType params)
virtual

Set the active transform's parameters

Implements itk::ObjectToObjectMetricBase.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
void itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::SetTransform ( MovingTransformType transform)

Connect the moving transform using a backwards-compatible name. This assigns the input transform to the moving transform.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
void itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::SetVirtualDomain ( const VirtualSpacingType spacing,
const VirtualOriginType origin,
const VirtualDirectionType direction,
const VirtualRegionType region 
)

Define the virtual reference space. This space defines the resolution at which the registration is performed as well as the physical coordinate system. Useful for unbiased registration. This method will allocate m_VirtualImage with the passed information, with the pixel buffer left unallocated. Metric evaluation will be performed within the constraints of the virtual domain depending on implementation in derived classes. A default domain is created during initializaiton in derived classes according to their need.

Parameters:
spacingspacing
originorigin
directiondirection
regionregion is used to set all image regions.
See also:
SetVirtualDomainFromImage
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
void itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::SetVirtualDomainFromImage ( VirtualImageType virtualImage)

Use a virtual domain image to define the virtual reference space.

See also:
SetVirtualDomain
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
void itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::SetVirtualDomainFromImage ( const VirtualImageType virtualImage)

Use a virtual domain image to define the virtual reference space.

See also:
SetVirtualDomain
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
virtual bool itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::SupportsArbitraryVirtualDomainSamples ( void  ) const
pure virtual

Returns a flag. True if arbitrary virtual domain points will always correspond to data points. False if not. For example, point-set metrics return false because only some virtual domain points will correspond to points within the point sets.

Implemented in itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >, itk::PointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet >, itk::PointSetToPointSetMetricv4< TPointSet, TPointSet >, and itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage >.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
bool itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::TransformPhysicalPointToVirtualIndex ( const VirtualPointType ,
VirtualIndexType  
) const
protected
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
void itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::TransformVirtualIndexToPhysicalPoint ( const VirtualIndexType ,
VirtualPointType  
) const
protected
template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
virtual void itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::UpdateTransformParameters ( const DerivativeType derivative,
ParametersValueType  factor 
)
virtual

Update the parameters of the metric's active transform. Typically this call is passed through directly to the transform. factor is a scalar multiplier for each value in update, and defaults to 1.0 . derivative must be the proper size, as retrieved from GetNumberOfParameters.

Implements itk::ObjectToObjectMetricBase.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
virtual void itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::VerifyDisplacementFieldSizeAndPhysicalSpace ( )
protectedvirtual

Verify that virtual domain and displacement field are the same size and in the same physical space.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
bool itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::VerifyNumberOfValidPoints ( MeasureType value,
DerivativeType derivative 
) const
protected

Check that the number of valid points is above a default minimum (zero). If not, then return false, and assign to 'value' a value indicating insufficient valid points were found during evaluation, and set the derivative to zero. A warning is also output. This functionality is provided as a separate method so derived classes can use it without hardcoding the details.


Member Data Documentation

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
const DimensionType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::FixedDimension = TFixedDimension
static

Object dimension accessors

Definition at line 121 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
FixedTransformPointer itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::m_FixedTransform
protected

Transforms

Definition at line 312 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
MovingTransformPointer itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::m_MovingTransform
protected

Definition at line 313 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
SizeValueType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::m_NumberOfValidPoints
mutableprotected

Store the number of points used during most recent value and derivative calculation.

See also:
VerifyNumberOfValidPoints()

Definition at line 324 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
bool itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::m_UserHasSetVirtualDomain
protected

Flag that is set when user provides a virtual domain, either via SetVirtualDomain() or SetVirtualDomainFromImage().

Definition at line 319 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
VirtualImagePointer itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::m_VirtualImage
protected

Definition at line 315 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
const DimensionType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::MovingDimension = TMovingDimension
static

Object dimension accessors

Definition at line 122 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, class TVirtualImage = Image<typename ObjectToObjectMetricBase::ParametersValueType, TFixedDimension>>
const DimensionType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage >::VirtualDimension = TVirtualImage::ImageDimension
static

Object dimension accessors

Definition at line 123 of file itkObjectToObjectMetric.h.


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