ITK  5.4.0
Insight Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Private Attributes | Friends | List of all members
itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits > Class Template Reference

#include <itkDemonsImageToImageMetricv4.h>

Detailed Description

template<typename TFixedImage, typename TMovingImage, typename TVirtualImage = TFixedImage, typename TInternalComputationValueType = double, typename TMetricTraits = DefaultImageToImageMetricTraitsv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType>>
class itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >

Class implementing demons metric.

The implementation is taken from itkDemonsRegistrationFunction.

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

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

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

See DemonsImageToImageMetricv4GetValueAndDerivativeThreader::ProcessPoint for algorithm implementation.

See also
itkImageToImageMetricv4

Definition at line 60 of file itkDemonsImageToImageMetricv4.h.

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

Public Types

using ConstPointer = SmartPointer< const Self >
 
using InternalComputationValueType = TInternalComputationValueType
 
using Pointer = SmartPointer< Self >
 
using Self = DemonsImageToImageMetricv4
 
using Superclass = ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >
 
using VirtualImageType = typename Superclass::VirtualImageType
 
using VirtualSPointSetType = typename Superclass::VirtualPointSetType
 
- Public Types inherited from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >
using ConstPointer = SmartPointer< const Self >
 
using DefaultFixedImageGradientCalculator = typename MetricTraits::DefaultFixedImageGradientCalculator
 
using DefaultFixedImageGradientFilter = typename MetricTraits::DefaultFixedImageGradientFilter
 
using DefaultMovingImageGradientCalculator = typename MetricTraits::DefaultMovingImageGradientCalculator
 
using DefaultMovingImageGradientFilter = typename MetricTraits::DefaultMovingImageGradientFilter
 
using DerivativeValueType = typename DerivativeType::ValueType
 
using FixedGradientPixelType = typename MetricTraits::FixedGradientPixelType
 
using FixedImageComponentGradientType = CovariantVector< typename FixedImageGradientType::ValueType, FixedImageDimension >
 
using FixedImageConstPointer = typename FixedImageType::ConstPointer
 
using FixedImageGradientCalculatorPointer = typename FixedImageGradientCalculatorType::Pointer
 
using FixedImageGradientCalculatorType = typename MetricTraits::FixedImageGradientCalculatorType
 
using FixedImageGradientFilterPointer = typename FixedImageGradientFilterType::Pointer
 
using FixedImageGradientFilterType = typename MetricTraits::FixedImageGradientFilterType
 
using FixedImageGradientImagePointer = typename FixedImageGradientImageType::Pointer
 
using FixedImageGradientImageType = typename MetricTraits::FixedImageGradientImageType
 
using FixedImageGradientType = typename MetricTraits::FixedImageGradientType
 
using FixedImageIndexType = typename FixedImageType::IndexType
 
using FixedImageMaskConstPointer = typename FixedImageMaskType::ConstPointer
 
using FixedImageMaskPointer = typename FixedImageMaskType::Pointer
 
using FixedImageMaskType = SpatialObject< Self::FixedImageDimension >
 
using FixedImagePixelType = typename FixedImageType::PixelType
 
using FixedImagePointer = typename FixedImageType::Pointer
 
using FixedImagePointType = typename FixedImageType::PointType
 
using FixedImageType = TFixedImage
 
using FixedInterpolatorPointer = typename FixedInterpolatorType::Pointer
 
using FixedInterpolatorType = InterpolateImageFunction< FixedImageType, CoordinateRepresentationType >
 
using FixedPixelType = FixedImagePixelType
 
using FixedRealType = typename MetricTraits::FixedRealType
 
using FixedSampledPointSetConstPointer = typename FixedSampledPointSetType::ConstPointer
 
using FixedSampledPointSetPointer = typename FixedSampledPointSetType::Pointer
 
using FixedSampledPointSetType = PointSet< typename FixedImageType::PixelType, Self::FixedImageDimension >
 
using FixedScalarRealType = typename NumericTraits< FixedRealType >::ScalarRealType
 
using ImageDimensionType = typename Superclass::DimensionType
 
using InternalComputationValueType = TInternalComputationValueType
 
using MetricTraits = TMetricTraits
 
using MovingGradientPixelType = typename MetricTraits::MovingGradientPixelType
 
using MovingImageComponentGradientType = CovariantVector< typename MovingImageGradientType::ValueType, MovingImageDimension >
 
using MovingImageConstPointer = typename MovingImageType::ConstPointer
 
using MovingImageGradientCalculatorPointer = typename MovingImageGradientCalculatorType::Pointer
 
using MovingImageGradientCalculatorType = typename MetricTraits::MovingImageGradientCalculatorType
 
using MovingImageGradientFilterPointer = typename MovingImageGradientFilterType::Pointer
 
using MovingImageGradientFilterType = typename MetricTraits::MovingImageGradientFilterType
 
using MovingImageGradientImagePointer = typename MovingImageGradientImageType::Pointer
 
using MovingImageGradientImageType = typename MetricTraits::MovingImageGradientImageType
 
using MovingImageGradientType = typename MetricTraits::MovingImageGradientType
 
using MovingImageIndexType = typename MovingImageType::IndexType
 
using MovingImageMaskConstPointer = typename MovingImageMaskType::ConstPointer
 
using MovingImageMaskPointer = typename MovingImageMaskType::Pointer
 
using MovingImageMaskType = SpatialObject< Self::MovingImageDimension >
 
using MovingImagePixelType = typename MovingImageType::PixelType
 
using MovingImagePointer = typename MovingImageType::Pointer
 
using MovingImagePointType = typename MovingImageType::PointType
 
using MovingImageRegionType = typename MovingImageType::RegionType
 
using MovingImageType = TMovingImage
 
using MovingInterpolatorPointer = typename MovingInterpolatorType::Pointer
 
using MovingInterpolatorType = InterpolateImageFunction< MovingImageType, CoordinateRepresentationType >
 
using MovingPixelType = MovingImagePixelType
 
using MovingRealType = typename MetricTraits::MovingRealType
 
using MovingScalarRealType = typename NumericTraits< MovingRealType >::ScalarRealType
 
using ObjectType = typename Superclass::ObjectType
 
using Pointer = SmartPointer< Self >
 
using Self = ImageToImageMetricv4
 
using Superclass = ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType >
 
using VirtualImageComponentGradientType = CovariantVector< typename VirtualImageGradientType::ValueType, VirtualImageDimension >
 
using VirtualImageGradientType = typename MetricTraits::VirtualImageGradientType
 
using VirtualImageType = typename Superclass::VirtualImageType
 
using VirtualOriginType = typename Superclass::VirtualPointType
 
using VirtualRadiusType = typename Superclass::VirtualSizeType
 
- Public Types inherited from itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType >
using ConstPointer = SmartPointer< const Self >
 
using CoordinateRepresentationType = TInternalComputationValueType
 
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< TInternalComputationValueType, TVirtualImage::ImageDimension, TFixedDimension >
 
using InternalComputationValueType = TInternalComputationValueType
 
using JacobianType = typename FixedTransformType::JacobianType
 
using MetricCategoryType = typename Superclass::MetricCategoryEnum
 
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< TInternalComputationValueType, TVirtualImage::ImageDimension, TMovingDimension >
 
using ObjectType = typename Superclass::Object
 
using Pointer = SmartPointer< Self >
 
using Self = ObjectToObjectMetric
 
using Superclass = ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >
 
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< TInternalComputationValueType >
using ConstPointer = SmartPointer< const Self >
 
using CoordinateRepresentationType = TInternalComputationValueType
 
using DerivativeValueType = typename DerivativeType::ValueType
 
using GradientSourceEnum = itk::ObjectToObjectMetricBaseTemplateEnums::GradientSource
 
using MetricCategoryEnum = itk::ObjectToObjectMetricBaseTemplateEnums::MetricCategory
 
using NumberOfParametersType = unsigned int
 
using ObjectConstPointer = typename ObjectType::ConstPointer
 
using ObjectType = Object
 
using ParametersValueType = TInternalComputationValueType
 
using Pointer = SmartPointer< Self >
 
using Self = ObjectToObjectMetricBaseTemplate
 
using Superclass = SingleValuedCostFunctionv4Template< TInternalComputationValueType >
 
- Public Types inherited from itk::SingleValuedCostFunctionv4Template< TInternalComputationValueType >
using ConstPointer = SmartPointer< const Self >
 
using DerivativeType = Array< TInternalComputationValueType >
 
using MeasureType = TInternalComputationValueType
 
using Pointer = SmartPointer< Self >
 
using Self = SingleValuedCostFunctionv4Template
 
using Superclass = CostFunctionTemplate< TInternalComputationValueType >
 
- Public Types inherited from itk::CostFunctionTemplate< TInternalComputationValueType >
using ConstPointer = SmartPointer< const Self >
 
using ParametersType = OptimizerParameters< TInternalComputationValueType >
 
using ParametersValueType = TInternalComputationValueType
 
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

virtual TInternalComputationValueType GetDenominatorThreshold () const
 
const char * GetNameOfClass () const override
 
void Initialize () override
 
virtual TInternalComputationValueType GetIntensityDifferenceThreshold () const
 
virtual void SetIntensityDifferenceThreshold (TInternalComputationValueType _arg)
 
- Public Member Functions inherited from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >
virtual void FinalizeThread (const ThreadIdType)
 
void GetDerivative (DerivativeType &) const override
 
virtual const FixedImageTypeGetFixedImage () const
 
MetricCategoryType GetMetricCategory () const override
 
virtual FixedImageGradientImageTypeGetModifiableFixedImageGradientImage ()
 
virtual FixedInterpolatorTypeGetModifiableFixedInterpolator ()
 
virtual MovingImageGradientImageTypeGetModifiableMovingImageGradientImage ()
 
virtual MovingInterpolatorTypeGetModifiableMovingInterpolator ()
 
const char * GetNameOfClass () const override
 
SizeValueType GetNumberOfDomainPoints () const
 
virtual const SizeValueTypeGetNumberOfSkippedFixedSampledPoints () const
 
virtual ThreadIdType GetNumberOfWorkUnitsUsed () const
 
MeasureType GetValue () const override
 
void GetValueAndDerivative (MeasureType &value, DerivativeType &derivative) const override
 
void Initialize () override
 
virtual void SetFixedImage (const FixedImageType *_arg)
 
virtual void SetFixedInterpolator (FixedInterpolatorType *_arg)
 
virtual void SetMovingInterpolator (MovingInterpolatorType *_arg)
 
bool SupportsArbitraryVirtualDomainSamples () const override
 
void SetFixedObject (const ObjectType *object) override
 
void SetMovingObject (const ObjectType *object) override
 
virtual void SetMovingImage (const MovingImageType *_arg)
 
virtual const MovingImageTypeGetMovingImage () const
 
virtual void SetMovingImageMask (const MovingImageMaskType *_arg)
 
virtual const MovingImageMaskTypeGetMovingImageMask () const
 
virtual void SetFixedImageMask (const FixedImageMaskType *_arg)
 
virtual const FixedImageMaskTypeGetFixedImageMask () const
 
virtual void SetFixedSampledPointSet (const FixedSampledPointSetType *_arg)
 
virtual const FixedSampledPointSetTypeGetFixedSampledPointSet () const
 
virtual void SetVirtualSampledPointSet (VirtualPointSetType *_arg)
 
virtual const VirtualPointSetTypeGetVirtualSampledPointSet () const
 
virtual void SetUseSampledPointSet (bool _arg)
 
virtual const bool & GetUseSampledPointSet () const
 
virtual void UseSampledPointSetOn ()
 
virtual void SetUseVirtualSampledPointSet (bool _arg)
 
virtual const bool & GetUseVirtualSampledPointSet () const
 
virtual void UseVirtualSampledPointSetOn ()
 
virtual void SetFixedImageGradientFilter (FixedImageGradientFilterType *_arg)
 
virtual FixedImageGradientFilterTypeGetModifiableFixedImageGradientFilter ()
 
virtual void SetMovingImageGradientFilter (MovingImageGradientFilterType *_arg)
 
virtual MovingImageGradientFilterTypeGetModifiableMovingImageGradientFilter ()
 
virtual void SetFixedImageGradientCalculator (FixedImageGradientCalculatorType *_arg)
 
virtual FixedImageGradientCalculatorTypeGetModifiableFixedImageGradientCalculator ()
 
virtual void SetMovingImageGradientCalculator (MovingImageGradientCalculatorType *_arg)
 
virtual MovingImageGradientCalculatorTypeGetModifiableMovingImageGradientCalculator ()
 
virtual void SetUseFixedImageGradientFilter (bool _arg)
 
virtual const bool & GetUseFixedImageGradientFilter () const
 
virtual void UseFixedImageGradientFilterOn ()
 
virtual void SetUseMovingImageGradientFilter (bool _arg)
 
virtual const bool & GetUseMovingImageGradientFilter () const
 
virtual void UseMovingImageGradientFilterOn ()
 
virtual void SetMaximumNumberOfWorkUnits (const ThreadIdType number)
 
virtual ThreadIdType GetMaximumNumberOfWorkUnits () const
 
virtual void SetUseFloatingPointCorrection (bool _arg)
 
virtual const bool & GetUseFloatingPointCorrection () const
 
virtual void UseFloatingPointCorrectionOn ()
 
virtual void SetFloatingPointCorrectionResolution (DerivativeValueType _arg)
 
virtual DerivativeValueType GetFloatingPointCorrectionResolution () const
 
- Public Member Functions inherited from itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType >
OffsetValueType ComputeParameterOffsetFromVirtualIndex (const VirtualIndexType &index, const NumberOfParametersType &numberOfLocalParameters) const
 
OffsetValueType ComputeParameterOffsetFromVirtualPoint (const VirtualPointType &point, const NumberOfParametersType &numberOfLocalParameters) const
 
MetricCategoryType GetMetricCategory () const override
 
virtual FixedTransformTypeGetModifiableFixedTransform ()
 
virtual MovingTransformTypeGetModifiableMovingTransform ()
 
virtual VirtualImageTypeGetModifiableVirtualImage ()
 
const char * GetNameOfClass () const override
 
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
 
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)
 
void UpdateTransformParameters (const DerivativeType &derivative, TInternalComputationValueType factor) override
 
bool IsInsideVirtualDomain (const VirtualPointType &point) const
 
bool IsInsideVirtualDomain (const VirtualIndexType &index) const
 
- Public Member Functions inherited from itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >
MeasureType GetCurrentValue () const
 
virtual GradientSourceEnum GetGradientSource () const
 
bool GetGradientSourceIncludesFixed () const
 
bool GetGradientSourceIncludesMoving () const
 
virtual void SetGradientSource (GradientSourceEnum _arg)
 
virtual const ObjectTypeGetFixedObject () const
 
virtual const ObjectTypeGetMovingObject () const
 
- Public Member Functions inherited from itk::Object
unsigned long AddObserver (const EventObject &event, Command *)
 
unsigned long AddObserver (const EventObject &event, Command *) const
 
unsigned long AddObserver (const EventObject &event, std::function< void(const EventObject &)> function) 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 noexcept override
 
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
Pointer Clone () const
 
virtual void Delete ()
 
virtual int GetReferenceCount () const
 
void Print (std::ostream &os, Indent indent=0) const
 

Static Public Member Functions

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

Static Public Attributes

static constexpr ImageDimensionType FixedImageDimension = TFixedImage::ImageDimension
 
static constexpr ImageDimensionType MovingImageDimension = TMovingImage::ImageDimension
 
static constexpr ImageDimensionType VirtualImageDimension = TVirtualImage::ImageDimension
 
- Static Public Attributes inherited from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >
static constexpr DimensionType FixedImageDimension = Superclass::FixedDimension
 
static constexpr DimensionType MovingImageDimension = Superclass::MovingDimension
 
static constexpr DimensionType VirtualImageDimension = Superclass::VirtualDimension
 
- Static Public Attributes inherited from itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType >
static constexpr DimensionType FixedDimension
 
static constexpr DimensionType MovingDimension
 
static constexpr DimensionType VirtualDimension
 

Protected Types

using DemonsDenseGetValueAndDerivativeThreaderType = DemonsImageToImageMetricv4GetValueAndDerivativeThreader< ThreadedImageRegionPartitioner< Superclass::VirtualImageDimension >, Superclass, Self >
 
using DemonsSparseGetValueAndDerivativeThreaderType = DemonsImageToImageMetricv4GetValueAndDerivativeThreader< ThreadedIndexedContainerPartitioner, Superclass, Self >
 
- Protected Types inherited from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >
using FixedImageGradientInterpolatorType = LinearInterpolateImageFunction< FixedImageGradientImageType, CoordinateRepresentationType >
 
using MovingImageGradientInterpolatorType = LinearInterpolateImageFunction< MovingImageGradientImageType, CoordinateRepresentationType >
 

Protected Member Functions

 DemonsImageToImageMetricv4 ()
 
virtual TInternalComputationValueType GetNormalizer () const
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
 ~DemonsImageToImageMetricv4 () override=default
 
- Protected Member Functions inherited from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >
virtual void ComputeFixedImageGradientAtPoint (const FixedImagePointType &mappedPoint, FixedImageGradientType &gradient) const
 
virtual void ComputeFixedImageGradientFilterImage ()
 
virtual void ComputeMovingImageGradientAtPoint (const MovingImagePointType &mappedPoint, MovingImageGradientType &gradient) const
 
virtual void ComputeMovingImageGradientFilterImage () const
 
virtual bool GetComputeDerivative () const
 
virtual void GetValueAndDerivativeExecute () const
 
 ImageToImageMetricv4 ()
 
virtual void InitializeForIteration () const
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
bool TransformAndEvaluateFixedPoint (const VirtualPointType &virtualPoint, FixedImagePointType &mappedFixedPoint, FixedImagePixelType &mappedFixedPixelValue) const
 
bool TransformAndEvaluateMovingPoint (const VirtualPointType &virtualPoint, MovingImagePointType &mappedMovingPoint, MovingImagePixelType &mappedMovingPixelValue) const
 
 ~ImageToImageMetricv4 () override=default
 
virtual void InitializeDefaultFixedImageGradientFilter ()
 
virtual void InitializeDefaultMovingImageGradientFilter ()
 
- Protected Member Functions inherited from itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType >
const MovingDisplacementFieldTransformTypeGetMovingDisplacementFieldTransform () 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< TInternalComputationValueType >
 ObjectToObjectMetricBaseTemplate ()
 
 ~ObjectToObjectMetricBaseTemplate () override=default
 
- Protected Member Functions inherited from itk::SingleValuedCostFunctionv4Template< TInternalComputationValueType >
 SingleValuedCostFunctionv4Template ()=default
 
 ~SingleValuedCostFunctionv4Template () override=default
 
- Protected Member Functions inherited from itk::CostFunctionTemplate< TInternalComputationValueType >
 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 &timeStamp)
 
 ~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 ()
 

Private Attributes

TInternalComputationValueType m_DenominatorThreshold {}
 
TInternalComputationValueType m_IntensityDifferenceThreshold {}
 
TInternalComputationValueType m_Normalizer {}
 

Friends

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

Additional Inherited Members

- Protected Attributes inherited from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >
DefaultFixedImageGradientCalculator::Pointer m_DefaultFixedImageGradientCalculator {}
 
DefaultFixedImageGradientFilter::Pointer m_DefaultFixedImageGradientFilter {}
 
DefaultMovingImageGradientCalculator::Pointer m_DefaultMovingImageGradientCalculator {}
 
DefaultMovingImageGradientFilter::Pointer m_DefaultMovingImageGradientFilter {}
 
ImageToImageMetricv4GetValueAndDerivativeThreader< ThreadedImageRegionPartitioner< VirtualImageDimension >, Self >::Pointer m_DenseGetValueAndDerivativeThreader
 
DerivativeTypem_DerivativeResult {}
 
FixedImageConstPointer m_FixedImage {}
 
FixedImageGradientCalculatorPointer m_FixedImageGradientCalculator {}
 
FixedImageGradientFilterPointer m_FixedImageGradientFilter {}
 
FixedImageGradientImagePointer m_FixedImageGradientImage {}
 
FixedImageGradientInterpolatorType::Pointer m_FixedImageGradientInterpolator {}
 
FixedImageMaskConstPointer m_FixedImageMask {}
 
FixedInterpolatorPointer m_FixedInterpolator {}
 
FixedSampledPointSetConstPointer m_FixedSampledPointSet {}
 
MovingImageConstPointer m_MovingImage {}
 
MovingImageGradientCalculatorPointer m_MovingImageGradientCalculator {}
 
MovingImageGradientFilterPointer m_MovingImageGradientFilter {}
 
MovingImageGradientImagePointer m_MovingImageGradientImage {}
 
MovingImageGradientInterpolatorType::Pointer m_MovingImageGradientInterpolator {}
 
MovingImageMaskConstPointer m_MovingImageMask {}
 
MovingInterpolatorPointer m_MovingInterpolator {}
 
ImageToImageMetricv4GetValueAndDerivativeThreader< ThreadedIndexedContainerPartitioner, Self >::Pointer m_SparseGetValueAndDerivativeThreader
 
bool m_UseFixedImageGradientFilter {}
 
bool m_UseMovingImageGradientFilter {}
 
bool m_UseSampledPointSet {}
 
bool m_UseVirtualSampledPointSet {}
 
VirtualPointSetPointer m_VirtualSampledPointSet {}
 
- Protected Attributes inherited from itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType >
FixedTransformPointer m_FixedTransform
 
MovingTransformPointer m_MovingTransform
 
SizeValueType m_NumberOfValidPoints
 
bool m_UserHasSetVirtualDomain
 
VirtualImagePointer m_VirtualImage
 
- Protected Attributes inherited from itk::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >
ObjectConstPointer m_FixedObject {}
 
GradientSourceEnum m_GradientSource {}
 
ObjectConstPointer m_MovingObject {}
 
MeasureType m_Value {}
 
- Protected Attributes inherited from itk::LightObject
std::atomic< int > m_ReferenceCount {}
 

Member Typedef Documentation

◆ ConstPointer

template<typename TFixedImage , typename TMovingImage , typename TVirtualImage = TFixedImage, typename TInternalComputationValueType = double, typename TMetricTraits = DefaultImageToImageMetricTraitsv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType>>
using itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >::ConstPointer = SmartPointer<const Self>

Definition at line 71 of file itkDemonsImageToImageMetricv4.h.

◆ DemonsDenseGetValueAndDerivativeThreaderType

template<typename TFixedImage , typename TMovingImage , typename TVirtualImage = TFixedImage, typename TInternalComputationValueType = double, typename TMetricTraits = DefaultImageToImageMetricTraitsv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType>>
using itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >::DemonsDenseGetValueAndDerivativeThreaderType = DemonsImageToImageMetricv4GetValueAndDerivativeThreader< ThreadedImageRegionPartitioner<Superclass::VirtualImageDimension>, Superclass, Self>
protected

Definition at line 137 of file itkDemonsImageToImageMetricv4.h.

◆ DemonsSparseGetValueAndDerivativeThreaderType

template<typename TFixedImage , typename TMovingImage , typename TVirtualImage = TFixedImage, typename TInternalComputationValueType = double, typename TMetricTraits = DefaultImageToImageMetricTraitsv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType>>
using itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >::DemonsSparseGetValueAndDerivativeThreaderType = DemonsImageToImageMetricv4GetValueAndDerivativeThreader<ThreadedIndexedContainerPartitioner, Superclass, Self>
protected

Definition at line 139 of file itkDemonsImageToImageMetricv4.h.

◆ InternalComputationValueType

template<typename TFixedImage , typename TMovingImage , typename TVirtualImage = TFixedImage, typename TInternalComputationValueType = double, typename TMetricTraits = DefaultImageToImageMetricTraitsv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType>>
using itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >::InternalComputationValueType = TInternalComputationValueType

It should be possible to derive the internal computation type from the class object.

Definition at line 100 of file itkDemonsImageToImageMetricv4.h.

◆ Pointer

template<typename TFixedImage , typename TMovingImage , typename TVirtualImage = TFixedImage, typename TInternalComputationValueType = double, typename TMetricTraits = DefaultImageToImageMetricTraitsv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType>>
using itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >::Pointer = SmartPointer<Self>

Definition at line 70 of file itkDemonsImageToImageMetricv4.h.

◆ Self

template<typename TFixedImage , typename TMovingImage , typename TVirtualImage = TFixedImage, typename TInternalComputationValueType = double, typename TMetricTraits = DefaultImageToImageMetricTraitsv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType>>
using itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >::Self = DemonsImageToImageMetricv4

Standard class type aliases.

Definition at line 67 of file itkDemonsImageToImageMetricv4.h.

◆ Superclass

template<typename TFixedImage , typename TMovingImage , typename TVirtualImage = TFixedImage, typename TInternalComputationValueType = double, typename TMetricTraits = DefaultImageToImageMetricTraitsv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType>>
using itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >::Superclass = ImageToImageMetricv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits>

Definition at line 69 of file itkDemonsImageToImageMetricv4.h.

◆ VirtualImageType

template<typename TFixedImage , typename TMovingImage , typename TVirtualImage = TFixedImage, typename TInternalComputationValueType = double, typename TMetricTraits = DefaultImageToImageMetricTraitsv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType>>
using itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >::VirtualImageType = typename Superclass::VirtualImageType

Definition at line 93 of file itkDemonsImageToImageMetricv4.h.

◆ VirtualSPointSetType

template<typename TFixedImage , typename TMovingImage , typename TVirtualImage = TFixedImage, typename TInternalComputationValueType = double, typename TMetricTraits = DefaultImageToImageMetricTraitsv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType>>
using itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >::VirtualSPointSetType = typename Superclass::VirtualPointSetType

Definition at line 96 of file itkDemonsImageToImageMetricv4.h.

Constructor & Destructor Documentation

◆ DemonsImageToImageMetricv4()

template<typename TFixedImage , typename TMovingImage , typename TVirtualImage = TFixedImage, typename TInternalComputationValueType = double, typename TMetricTraits = DefaultImageToImageMetricTraitsv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType>>
itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >::DemonsImageToImageMetricv4 ( )
protected

◆ ~DemonsImageToImageMetricv4()

template<typename TFixedImage , typename TMovingImage , typename TVirtualImage = TFixedImage, typename TInternalComputationValueType = double, typename TMetricTraits = DefaultImageToImageMetricTraitsv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType>>
itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >::~DemonsImageToImageMetricv4 ( )
overrideprotecteddefault

Member Function Documentation

◆ GetDenominatorThreshold()

template<typename TFixedImage , typename TMovingImage , typename TVirtualImage = TFixedImage, typename TInternalComputationValueType = double, typename TMetricTraits = DefaultImageToImageMetricTraitsv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType>>
virtual TInternalComputationValueType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >::GetDenominatorThreshold ( ) const
virtual

Get the denominator threshold used in derivative calculation.

◆ GetIntensityDifferenceThreshold()

template<typename TFixedImage , typename TMovingImage , typename TVirtualImage = TFixedImage, typename TInternalComputationValueType = double, typename TMetricTraits = DefaultImageToImageMetricTraitsv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType>>
virtual TInternalComputationValueType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >::GetIntensityDifferenceThreshold ( ) const
virtual

Accessors for the image intensity difference threshold use in derivative calculation

◆ GetNameOfClass()

template<typename TFixedImage , typename TMovingImage , typename TVirtualImage = TFixedImage, typename TInternalComputationValueType = double, typename TMetricTraits = DefaultImageToImageMetricTraitsv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType>>
const char* itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >::GetNameOfClass ( ) const
overridevirtual

◆ GetNormalizer()

template<typename TFixedImage , typename TMovingImage , typename TVirtualImage = TFixedImage, typename TInternalComputationValueType = double, typename TMetricTraits = DefaultImageToImageMetricTraitsv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType>>
virtual TInternalComputationValueType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >::GetNormalizer ( ) const
protectedvirtual

◆ Initialize()

template<typename TFixedImage , typename TMovingImage , typename TVirtualImage = TFixedImage, typename TInternalComputationValueType = double, typename TMetricTraits = DefaultImageToImageMetricTraitsv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType>>
void itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >::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< TInternalComputationValueType >.

◆ New()

template<typename TFixedImage , typename TMovingImage , typename TVirtualImage = TFixedImage, typename TInternalComputationValueType = double, typename TMetricTraits = DefaultImageToImageMetricTraitsv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType>>
static Pointer itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >::New ( )
static

Method for creation through the object factory.

◆ PrintSelf()

template<typename TFixedImage , typename TMovingImage , typename TVirtualImage = TFixedImage, typename TInternalComputationValueType = double, typename TMetricTraits = DefaultImageToImageMetricTraitsv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType>>
void itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >::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::ObjectToObjectMetricBaseTemplate< TInternalComputationValueType >.

◆ SetIntensityDifferenceThreshold()

template<typename TFixedImage , typename TMovingImage , typename TVirtualImage = TFixedImage, typename TInternalComputationValueType = double, typename TMetricTraits = DefaultImageToImageMetricTraitsv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType>>
virtual void itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >::SetIntensityDifferenceThreshold ( TInternalComputationValueType  _arg)
virtual

Accessors for the image intensity difference threshold use in derivative calculation

Friends And Related Function Documentation

◆ DemonsImageToImageMetricv4GetValueAndDerivativeThreader< ThreadedImageRegionPartitioner< Superclass::VirtualImageDimension >, Superclass, Self >

template<typename TFixedImage , typename TMovingImage , typename TVirtualImage = TFixedImage, typename TInternalComputationValueType = double, typename TMetricTraits = DefaultImageToImageMetricTraitsv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType>>
friend class DemonsImageToImageMetricv4GetValueAndDerivativeThreader< ThreadedImageRegionPartitioner< Superclass::VirtualImageDimension >, Superclass, Self >
friend

Definition at line 130 of file itkDemonsImageToImageMetricv4.h.

◆ DemonsImageToImageMetricv4GetValueAndDerivativeThreader< ThreadedIndexedContainerPartitioner, Superclass, Self >

template<typename TFixedImage , typename TMovingImage , typename TVirtualImage = TFixedImage, typename TInternalComputationValueType = double, typename TMetricTraits = DefaultImageToImageMetricTraitsv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType>>
friend class DemonsImageToImageMetricv4GetValueAndDerivativeThreader< ThreadedIndexedContainerPartitioner, Superclass, Self >
friend

Definition at line 133 of file itkDemonsImageToImageMetricv4.h.

Member Data Documentation

◆ FixedImageDimension

template<typename TFixedImage , typename TMovingImage , typename TVirtualImage = TFixedImage, typename TInternalComputationValueType = double, typename TMetricTraits = DefaultImageToImageMetricTraitsv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType>>
constexpr ImageDimensionType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >::FixedImageDimension = TFixedImage::ImageDimension
staticconstexpr

Definition at line 106 of file itkDemonsImageToImageMetricv4.h.

◆ m_DenominatorThreshold

template<typename TFixedImage , typename TMovingImage , typename TVirtualImage = TFixedImage, typename TInternalComputationValueType = double, typename TMetricTraits = DefaultImageToImageMetricTraitsv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType>>
TInternalComputationValueType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >::m_DenominatorThreshold {}
private

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

Definition at line 147 of file itkDemonsImageToImageMetricv4.h.

◆ m_IntensityDifferenceThreshold

template<typename TFixedImage , typename TMovingImage , typename TVirtualImage = TFixedImage, typename TInternalComputationValueType = double, typename TMetricTraits = DefaultImageToImageMetricTraitsv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType>>
TInternalComputationValueType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >::m_IntensityDifferenceThreshold {}
private

Threshold below which two intensity value are assumed to match.

Definition at line 150 of file itkDemonsImageToImageMetricv4.h.

◆ m_Normalizer

template<typename TFixedImage , typename TMovingImage , typename TVirtualImage = TFixedImage, typename TInternalComputationValueType = double, typename TMetricTraits = DefaultImageToImageMetricTraitsv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType>>
TInternalComputationValueType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >::m_Normalizer {}
private

Definition at line 153 of file itkDemonsImageToImageMetricv4.h.

◆ MovingImageDimension

template<typename TFixedImage , typename TMovingImage , typename TVirtualImage = TFixedImage, typename TInternalComputationValueType = double, typename TMetricTraits = DefaultImageToImageMetricTraitsv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType>>
constexpr ImageDimensionType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >::MovingImageDimension = TMovingImage::ImageDimension
staticconstexpr

Definition at line 107 of file itkDemonsImageToImageMetricv4.h.

◆ VirtualImageDimension

template<typename TFixedImage , typename TMovingImage , typename TVirtualImage = TFixedImage, typename TInternalComputationValueType = double, typename TMetricTraits = DefaultImageToImageMetricTraitsv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType>>
constexpr ImageDimensionType itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >::VirtualImageDimension = TVirtualImage::ImageDimension
staticconstexpr

Definition at line 105 of file itkDemonsImageToImageMetricv4.h.


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