ITK  5.0.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType > Class Template Referenceabstract

#include <itkObjectToObjectMetric.h>

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

Detailed Description

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

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 nullptr.

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() 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 89 of file itkObjectToObjectMetric.h.

Public Types

using ConstPointer = SmartPointer< const Self >
 
using CoordinateRepresentationType = TParametersValueType
 
using DerivativeType = typename Superclass::DerivativeType
 
using DerivativeValueType = typename Superclass::DerivativeValueType
 
using DimensionType = SizeValueType
 
using FixedInputPointType = typename FixedTransformType::InputPointType
 
using FixedOutputPointType = typename FixedTransformType::OutputPointType
 
using FixedTransformJacobianType = typename FixedTransformType::JacobianType
 
using FixedTransformParametersType = typename FixedTransformType::ParametersType
 
using FixedTransformPointer = typename FixedTransformType::Pointer
 
using FixedTransformType = Transform< TParametersValueType, TVirtualImage::ImageDimension, TFixedDimension >
 
using GradientSourceType = typename Superclass::GradientSourceType
 
using InternalComputationValueType = TParametersValueType
 
using JacobianType = typename FixedTransformType::JacobianType
 
using MeasureType = typename Superclass::MeasureType
 
using MetricCategoryType = typename Superclass::MetricCategoryType
 
using MovingDisplacementFieldTransformType = DisplacementFieldTransform< CoordinateRepresentationType, Self::MovingDimension >
 
using MovingInputPointType = typename MovingTransformType::InputPointType
 
using MovingOutputPointType = typename MovingTransformType::OutputPointType
 
using MovingTransformJacobianType = typename MovingTransformType::JacobianType
 
using MovingTransformParametersType = typename MovingTransformType::ParametersType
 
using MovingTransformPointer = typename MovingTransformType::Pointer
 
using MovingTransformType = Transform< TParametersValueType, TVirtualImage::ImageDimension, TMovingDimension >
 
using NumberOfParametersType = typename Superclass::NumberOfParametersType
 
using ObjectType = typename Superclass::Object
 
using ParametersType = typename Superclass::ParametersType
 
using Pointer = SmartPointer< Self >
 
using Self = ObjectToObjectMetric
 
using Superclass = ObjectToObjectMetricBaseTemplate< TParametersValueType >
 
using VirtualDirectionType = typename VirtualImageType::DirectionType
 
using VirtualImageConstPointer = typename VirtualImageType::ConstPointer
 
using VirtualImagePointer = typename VirtualImageType::Pointer
 
using VirtualImageType = TVirtualImage
 
using VirtualIndexType = typename VirtualImageType::IndexType
 
using VirtualOriginType = typename VirtualImageType::PointType
 
using VirtualPixelType = typename VirtualImageType::PixelType
 
using VirtualPointSetPointer = typename VirtualPointSetType::Pointer
 
using VirtualPointSetType = PointSet< VirtualPixelType, Self::VirtualDimension >
 
using VirtualPointType = typename VirtualImageType::PointType
 
using VirtualRadiusType = typename VirtualImageType::SizeType
 
using VirtualRegionType = typename VirtualImageType::RegionType
 
using VirtualSizeType = typename VirtualRegionType::SizeType
 
using VirtualSpacingType = typename VirtualImageType::SpacingType
 
- Public Types inherited from itk::ObjectToObjectMetricBaseTemplate< TParametersValueType >
using ConstPointer = SmartPointer< const Self >
 
using CoordinateRepresentationType = TParametersValueType
 
using DerivativeType = typename Superclass::DerivativeType
 
using DerivativeValueType = typename DerivativeType::ValueType
 
enum  GradientSourceType
 
using MeasureType = typename Superclass::MeasureType
 
enum  MetricCategoryType
 
using NumberOfParametersType = unsigned int
 
using ObjectConstPointer = typename ObjectType::ConstPointer
 
using ObjectType = Object
 
using ParametersType = typename Superclass::ParametersType
 
using ParametersValueType = TParametersValueType
 
using Pointer = SmartPointer< Self >
 
using Self = ObjectToObjectMetricBaseTemplate
 
using Superclass = SingleValuedCostFunctionv4Template< TParametersValueType >
 
- Public Types inherited from itk::SingleValuedCostFunctionv4Template< TParametersValueType >
using ConstPointer = SmartPointer< const Self >
 
using DerivativeType = Array< TParametersValueType >
 
using MeasureType = TParametersValueType
 
using ParametersType = typename Superclass::ParametersType
 
using Pointer = SmartPointer< Self >
 
using Self = SingleValuedCostFunctionv4Template
 
using Superclass = CostFunctionTemplate< TParametersValueType >
 
- Public Types inherited from itk::CostFunctionTemplate< TParametersValueType >
using ConstPointer = SmartPointer< const Self >
 
using ParametersType = OptimizerParameters< TParametersValueType >
 
using ParametersValueType = TParametersValueType
 
using Pointer = SmartPointer< Self >
 
using Self = CostFunctionTemplate
 
using Superclass = Object
 
- Public Types inherited from itk::Object
using ConstPointer = SmartPointer< const Self >
 
using Pointer = SmartPointer< Self >
 
using Self = Object
 
using Superclass = LightObject
 
- Public Types inherited from itk::LightObject
using ConstPointer = SmartPointer< const Self >
 
using Pointer = SmartPointer< Self >
 
using Self = 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 () const
 
MetricCategoryType GetMetricCategory () const override
 
virtual FixedTransformTypeGetModifiableFixedTransform ()
 
virtual MovingTransformTypeGetModifiableMovingTransform ()
 
virtual VirtualImageTypeGetModifiableVirtualImage ()
 
virtual const MovingTransformTypeGetMovingTransform () const
 
virtual const char * GetNameOfClass () const
 
NumberOfParametersType GetNumberOfLocalParameters () const override
 
NumberOfParametersType GetNumberOfParameters () const override
 
virtual SizeValueType GetNumberOfValidPoints () const
 
const ParametersTypeGetParameters () const override
 
const MovingTransformTypeGetTransform ()
 
VirtualDirectionType GetVirtualDirection () const
 
virtual const TimeStampGetVirtualDomainTimeStamp () const
 
virtual const VirtualImageTypeGetVirtualImage () const
 
VirtualOriginType GetVirtualOrigin () const
 
const VirtualRegionTypeGetVirtualRegion () const
 
VirtualSpacingType GetVirtualSpacing () const
 
bool HasLocalSupport () const override
 
void Initialize () override
 
virtual void SetFixedTransform (FixedTransformType *_arg)
 
virtual void SetMovingTransform (MovingTransformType *_arg)
 
void SetParameters (ParametersType &params) override
 
void SetTransform (MovingTransformType *transform)
 
void SetVirtualDomain (const VirtualSpacingType &spacing, const VirtualOriginType &origin, const VirtualDirectionType &direction, const VirtualRegionType &region)
 
void SetVirtualDomainFromImage (const VirtualImageType *virtualImage)
 
virtual bool SupportsArbitraryVirtualDomainSamples () const =0
 
void UpdateTransformParameters (const DerivativeType &derivative, TParametersValueType factor) override
 
bool IsInsideVirtualDomain (const VirtualPointType &point) const
 
bool IsInsideVirtualDomain (const VirtualIndexType &index) const
 
- Public Member Functions inherited from itk::ObjectToObjectMetricBaseTemplate< TParametersValueType >
MeasureType GetCurrentValue () const
 
virtual void GetDerivative (DerivativeType &) const =0
 
virtual GradientSourceType GetGradientSource () const
 
bool GetGradientSourceIncludesFixed () const
 
bool GetGradientSourceIncludesMoving () const
 
MeasureType GetValue () const override=0
 
void GetValueAndDerivative (MeasureType &value, DerivativeType &derivative) const override=0
 
virtual void SetGradientSource (GradientSourceType _arg)
 
virtual void SetParameters (ParametersType &params)=0
 
virtual void SetFixedObject (const ObjectType *_arg)
 
virtual const ObjectTypeGetFixedObject () const
 
virtual void SetMovingObject (const ObjectType *_arg)
 
virtual const ObjectTypeGetMovingObject () const
 
- Public Member Functions inherited from itk::SingleValuedCostFunctionv4Template< TParametersValueType >
virtual void GetValueAndDerivative (MeasureType &value, DerivativeType &derivative) const =0
 
- Public Member Functions inherited from itk::Object
unsigned long AddObserver (const EventObject &event, Command *)
 
unsigned long AddObserver (const EventObject &event, Command *) const
 
LightObject::Pointer CreateAnother () const override
 
virtual void DebugOff () const
 
virtual void DebugOn () const
 
CommandGetCommand (unsigned long tag)
 
bool GetDebug () const
 
MetaDataDictionaryGetMetaDataDictionary ()
 
const MetaDataDictionaryGetMetaDataDictionary () const
 
virtual ModifiedTimeType GetMTime () const
 
virtual const TimeStampGetTimeStamp () const
 
bool HasObserver (const EventObject &event) const
 
void InvokeEvent (const EventObject &)
 
void InvokeEvent (const EventObject &) const
 
virtual void Modified () const
 
void Register () const override
 
void RemoveAllObservers ()
 
void RemoveObserver (unsigned long tag)
 
void SetDebug (bool debugFlag) const
 
void SetReferenceCount (int) override
 
void UnRegister () const noexceptoverride
 
void SetMetaDataDictionary (const MetaDataDictionary &rhs)
 
void SetMetaDataDictionary (MetaDataDictionary &&rrhs)
 
virtual void SetObjectName (std::string _arg)
 
virtual const std::string & GetObjectName () const
 
- Public Member Functions inherited from itk::LightObject
virtual void Delete ()
 
virtual int GetReferenceCount () const
 
 itkCloneMacro (Self)
 
void Print (std::ostream &os, Indent indent=0) const
 

Static Public Attributes

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

Protected Member Functions

const
MovingDisplacementFieldTransformType
GetMovingDisplacementFieldTransform () const
 
 ObjectToObjectMetric ()
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
bool TransformPhysicalPointToVirtualIndex (const VirtualPointType &, VirtualIndexType &) const
 
void TransformVirtualIndexToPhysicalPoint (const VirtualIndexType &, VirtualPointType &) const
 
virtual void VerifyDisplacementFieldSizeAndPhysicalSpace ()
 
bool VerifyNumberOfValidPoints (MeasureType &value, DerivativeType &derivative) const
 
 ~ObjectToObjectMetric () override=default
 
- Protected Member Functions inherited from itk::ObjectToObjectMetricBaseTemplate< TParametersValueType >
 ObjectToObjectMetricBaseTemplate ()
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
 ~ObjectToObjectMetricBaseTemplate () override=default
 
- Protected Member Functions inherited from itk::SingleValuedCostFunctionv4Template< TParametersValueType >
 SingleValuedCostFunctionv4Template ()=default
 
 ~SingleValuedCostFunctionv4Template () override=default
 
- Protected Member Functions inherited from itk::CostFunctionTemplate< TParametersValueType >
 CostFunctionTemplate ()=default
 
 ~CostFunctionTemplate () override=default
 
- Protected Member Functions inherited from itk::Object
 Object ()
 
bool PrintObservers (std::ostream &os, Indent indent) const
 
virtual void SetTimeStamp (const TimeStamp &time)
 
 ~Object () override
 
- 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 {0}
 
bool m_UserHasSetVirtualDomain
 
VirtualImagePointer m_VirtualImage
 
- Protected Attributes inherited from itk::ObjectToObjectMetricBaseTemplate< TParametersValueType >
ObjectConstPointer m_FixedObject
 
GradientSourceType m_GradientSource
 
ObjectConstPointer m_MovingObject
 
MeasureType m_Value
 
- Protected Attributes inherited from itk::LightObject
std::atomic< int > m_ReferenceCount
 

Additional Inherited Members

- Static Public Member Functions inherited from itk::Object
static bool GetGlobalWarningDisplay ()
 
static void GlobalWarningDisplayOff ()
 
static void GlobalWarningDisplayOn ()
 
static Pointer New ()
 
static void SetGlobalWarningDisplay (bool flag)
 
- Static Public Member Functions inherited from itk::LightObject
static void BreakOnError ()
 
static Pointer New ()
 

Member Typedef Documentation

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::ConstPointer = SmartPointer<const Self>

Definition at line 99 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::CoordinateRepresentationType = TParametersValueType

Type used for representing object components

Definition at line 105 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::DerivativeType = typename Superclass::DerivativeType

Type of the derivative.

Definition at line 117 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::DerivativeValueType = typename Superclass::DerivativeValueType

Definition at line 118 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::DimensionType = SizeValueType

Dimension type

Definition at line 127 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::FixedInputPointType = typename FixedTransformType::InputPointType

Definition at line 161 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::FixedOutputPointType = typename FixedTransformType::OutputPointType

Definition at line 162 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::FixedTransformJacobianType = typename FixedTransformType::JacobianType

Definition at line 172 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::FixedTransformParametersType = typename FixedTransformType::ParametersType

Definition at line 163 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::FixedTransformPointer = typename FixedTransformType::Pointer

Definition at line 160 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::FixedTransformType = Transform<TParametersValueType, TVirtualImage::ImageDimension, TFixedDimension>

Definition at line 158 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::GradientSourceType = typename Superclass::GradientSourceType

Definition at line 124 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::InternalComputationValueType = TParametersValueType

Type for internal computations

Definition at line 108 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::JacobianType = typename FixedTransformType::JacobianType

Jacobian type. This is the same for all transforms

Definition at line 171 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::MeasureType = typename Superclass::MeasureType

Type of the measure.

Definition at line 111 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::MetricCategoryType = typename Superclass::MetricCategoryType

Definition at line 294 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::MovingDisplacementFieldTransformType = DisplacementFieldTransform<CoordinateRepresentationType, Self::MovingDimension >

DisplacementFieldTransform types for working with local-support transforms

Definition at line 176 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::MovingInputPointType = typename MovingTransformType::InputPointType

Definition at line 166 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::MovingOutputPointType = typename MovingTransformType::OutputPointType

Definition at line 167 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::MovingTransformJacobianType = typename MovingTransformType::JacobianType

Definition at line 173 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::MovingTransformParametersType = typename MovingTransformType::ParametersType

Definition at line 168 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::MovingTransformPointer = typename MovingTransformType::Pointer

Definition at line 165 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::MovingTransformType = Transform<TParametersValueType, TVirtualImage::ImageDimension, TMovingDimension>

Type of the Transform Base classes

Definition at line 155 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::NumberOfParametersType = typename Superclass::NumberOfParametersType

Definition at line 122 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::ObjectType = typename Superclass::Object

Type of object.

Definition at line 114 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::ParametersType = typename Superclass::ParametersType

Type of the parameters.

Definition at line 121 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::Pointer = SmartPointer<Self>

Definition at line 98 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::Self = ObjectToObjectMetric

Standard class type aliases.

Definition at line 96 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::Superclass = ObjectToObjectMetricBaseTemplate<TParametersValueType>

Definition at line 97 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::VirtualDirectionType = typename VirtualImageType::DirectionType

Definition at line 144 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::VirtualImageConstPointer = typename VirtualImageType::ConstPointer

Definition at line 137 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::VirtualImagePointer = typename VirtualImageType::Pointer

Definition at line 136 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::VirtualImageType = TVirtualImage

Types for the virtual domain

Definition at line 135 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::VirtualIndexType = typename VirtualImageType::IndexType

Definition at line 146 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::VirtualOriginType = typename VirtualImageType::PointType

Definition at line 142 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::VirtualPixelType = typename VirtualImageType::PixelType

Definition at line 138 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::VirtualPointSetPointer = typename VirtualPointSetType::Pointer

Definition at line 150 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::VirtualPointSetType = PointSet<VirtualPixelType, Self::VirtualDimension>

Point set in the virtual domain

Definition at line 149 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::VirtualPointType = typename VirtualImageType::PointType

Definition at line 143 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::VirtualRadiusType = typename VirtualImageType::SizeType

Definition at line 145 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::VirtualRegionType = typename VirtualImageType::RegionType

Definition at line 139 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::VirtualSizeType = typename VirtualRegionType::SizeType

Definition at line 140 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
using itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::VirtualSpacingType = typename VirtualImageType::SpacingType

Definition at line 141 of file itkObjectToObjectMetric.h.

Constructor & Destructor Documentation

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::ObjectToObjectMetric ( )
protected
template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::~ObjectToObjectMetric ( )
overrideprotecteddefault

Member Function Documentation

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
OffsetValueType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::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, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
OffsetValueType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::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, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
virtual const FixedTransformType* itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::GetFixedTransform ( ) const
virtual
template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
MetricCategoryType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::GetMetricCategory ( ) const
inlineoverridevirtual
template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
virtual FixedTransformType* itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::GetModifiableFixedTransform ( )
virtual

Get a pointer to the fixed transform.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
virtual MovingTransformType* itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::GetModifiableMovingTransform ( )
virtual

Get a pointer to the moving transform.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
virtual VirtualImageType* itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::GetModifiableVirtualImage ( )
virtual
template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
const MovingDisplacementFieldTransformType* itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::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 nullptr.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
virtual const MovingTransformType* itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::GetMovingTransform ( ) const
virtual
template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
virtual const char* itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods).

Reimplemented from itk::ObjectToObjectMetricBaseTemplate< TParametersValueType >.

Reimplemented in itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::MattesMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::ObjectToObjectMultiMetricv4< TFixedDimension, TMovingDimension, TVirtualImage, TInternalComputationValueType >, itk::CorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4< TPointSet, TInternalComputationValueType >, itk::PointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::PointSetToPointSetMetricv4< TPointSet, TPointSet, TInternalComputationValueType >, itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::LabeledPointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::JointHistogramMutualInformationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >, itk::ExpectationBasedPointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, itk::EuclideanDistancePointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >, and itk::MeanSquaresImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
NumberOfParametersType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::GetNumberOfLocalParameters ( ) const
overridevirtual

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::ObjectToObjectMetricBaseTemplate< TParametersValueType >.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
NumberOfParametersType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::GetNumberOfParameters ( void  ) const
overridevirtual

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::ObjectToObjectMetricBaseTemplate< TParametersValueType >.

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

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

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

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
const ParametersType& itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::GetParameters ( ) const
overridevirtual

Get a const reference to the active transform's parameters

Implements itk::ObjectToObjectMetricBaseTemplate< TParametersValueType >.

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

Get the moving transform using a backwards-compatible name

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
VirtualDirectionType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::GetVirtualDirection ( ) const

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

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
virtual const TimeStamp& itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::GetVirtualDomainTimeStamp ( ) 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, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
virtual const VirtualImageType* itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::GetVirtualImage ( ) const
virtual
template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
VirtualOriginType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::GetVirtualOrigin ( ) const

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

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
const VirtualRegionType& itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::GetVirtualRegion ( ) const

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

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
VirtualSpacingType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::GetVirtualSpacing ( ) const

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

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
bool itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::HasLocalSupport ( ) const
overridevirtual

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

Implements itk::ObjectToObjectMetricBaseTemplate< TParametersValueType >.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
void itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::Initialize ( )
overridevirtual

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.

Implements itk::ObjectToObjectMetricBaseTemplate< TParametersValueType >.

Reimplemented in itk::PointSetToPointSetMetricv4< TPointSet, TPointSet, TInternalComputationValueType >.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
bool itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::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, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
bool itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::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, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
void itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
overrideprotectedvirtual

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::Object.

Reimplemented in itk::PointSetToPointSetMetricv4< TPointSet, TPointSet, TInternalComputationValueType >.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
virtual void itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::SetFixedTransform ( FixedTransformType _arg)
virtual

Connect the fixed transform.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
virtual void itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::SetMovingTransform ( MovingTransformType _arg)
virtual

Connect the moving transform.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
void itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::SetParameters ( ParametersType params)
override
template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
void itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::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, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
void itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::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, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
void itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::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, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
virtual bool itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::SupportsArbitraryVirtualDomainSamples ( ) const
pure virtual
template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
bool itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::TransformPhysicalPointToVirtualIndex ( const VirtualPointType ,
VirtualIndexType  
) const
protected
template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
void itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::TransformVirtualIndexToPhysicalPoint ( const VirtualIndexType ,
VirtualPointType  
) const
protected
template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
void itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::UpdateTransformParameters ( const DerivativeType derivative,
TParametersValueType  factor 
)
overridevirtual

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::ObjectToObjectMetricBaseTemplate< TParametersValueType >.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
virtual void itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::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, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
bool itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::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, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
constexpr DimensionType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::FixedDimension = TFixedDimension
static

Object dimension accessors

Definition at line 130 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
FixedTransformPointer itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::m_FixedTransform
protected

Transforms

Definition at line 330 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
MovingTransformPointer itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::m_MovingTransform
protected

Definition at line 331 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
SizeValueType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::m_NumberOfValidPoints {0}
mutableprotected

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

See Also
VerifyNumberOfValidPoints()

Definition at line 342 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
bool itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::m_UserHasSetVirtualDomain
protected

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

Definition at line 337 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
VirtualImagePointer itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::m_VirtualImage
protected

Definition at line 333 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
constexpr DimensionType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::MovingDimension = TMovingDimension
static

Definition at line 131 of file itkObjectToObjectMetric.h.

template<unsigned int TFixedDimension, unsigned int TMovingDimension, typename TVirtualImage = Image<double, TFixedDimension>, typename TParametersValueType = double>
constexpr DimensionType itk::ObjectToObjectMetric< TFixedDimension, TMovingDimension, TVirtualImage, TParametersValueType >::VirtualDimension = TVirtualImage::ImageDimension
static

Definition at line 132 of file itkObjectToObjectMetric.h.


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