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

#include <itkANTSNeighborhoodCorrelationImageToImageMetricv4.h>

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

List of all members.

Classes

struct  ScanMemType
struct  ScanParametersType

Public Types

typedef SmartPointer< const SelfConstPointer
typedef Superclass::DerivativeType DerivativeType
typedef
Superclass::DerivativeValueType 
DerivativeValueType
typedef
Superclass::FixedImageGradientType 
FixedImageGradientType
typedef
FixedTransformType::JacobianType 
FixedImageJacobianType
typedef
Superclass::FixedImagePixelType 
FixedImagePixelType
typedef
Superclass::FixedImagePointType 
FixedImagePointType
typedef Superclass::FixedImageType FixedImageType
typedef
Superclass::FixedOutputPointType 
FixedOutputPointType
typedef
Superclass::FixedTransformType::JacobianType 
FixedTransformJacobianType
typedef
Superclass::FixedTransformType 
FixedTransformType
typedef
Superclass::ImageDimensionType 
ImageDimensionType
typedef
VirtualImageType::RegionType 
ImageRegionType
typedef VirtualImageType::IndexType IndexType
typedef
Superclass::InternalComputationValueType 
InternalComputationValueType
typedef Superclass::JacobianType JacobianType
typedef Superclass::MeasureType MeasureType
typedef
Superclass::MovingImageGradientType 
MovingImageGradientType
typedef
MovingTransformType::JacobianType 
MovingImageJacobianType
typedef
Superclass::MovingImagePixelType 
MovingImagePixelType
typedef
Superclass::MovingImagePointType 
MovingImagePointType
typedef Superclass::MovingImageType MovingImageType
typedef
Superclass::MovingOutputPointType 
MovingOutputPointType
typedef
Superclass::MovingTransformType::JacobianType 
MovingTransformJacobianType
typedef
Superclass::MovingTransformType 
MovingTransformType
typedef
Superclass::NumberOfParametersType 
NumberOfParametersType
typedef SmartPointer< SelfPointer
typedef VirtualImageType::SizeType RadiusType
typedef
ANTSNeighborhoodCorrelationImageToImageMetricv4 
Self
typedef ImageToImageMetricv4
< TFixedImage, TMovingImage,
TVirtualImage > 
Superclass
typedef
Superclass::VirtualImageGradientType 
VirtualImageGradientType
typedef
Superclass::VirtualImageType 
VirtualImageType
typedef
Superclass::VirtualPointType 
VirtualPointType
- Public Types inherited from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >
typedef
Superclass::CoordinateRepresentationType 
CoordinateRepresentationType
typedef
GradientRecursiveGaussianImageFilter
< FixedImageType,
FixedImageGradientImageType
DefaultFixedImageGradientFilter
typedef
GradientRecursiveGaussianImageFilter
< MovingImageType,
MovingImageGradientImageType
DefaultMovingImageGradientFilter
typedef Superclass::DimensionType DimensionType
typedef
FixedImageType::ConstPointer 
FixedImageConstPointer
typedef
FixedImageGradientCalculatorType::Pointer 
FixedImageGradientCalculatorPointer
typedef
FixedImageGradientFilterType::Pointer 
FixedImageGradientFilterPointer
typedef ImageToImageFilter
< FixedImageType,
FixedImageGradientImageType
FixedImageGradientFilterType
typedef FixedImageType::IndexType FixedImageIndexType
typedef
FixedImageMaskType::ConstPointer 
FixedImageMaskConstPointer
typedef FixedImageMaskType::Pointer FixedImageMaskPointer
typedef SpatialObject
< itkGetStaticConstMacro(FixedImageDimension) > 
FixedImageMaskType
typedef FixedImageType::Pointer FixedImagePointer
typedef
Superclass::FixedInputPointType 
FixedInputPointType
typedef
FixedInterpolatorType::Pointer 
FixedInterpolatorPointer
typedef
InterpolateImageFunction
< FixedImageType,
CoordinateRepresentationType
FixedInterpolatorType
typedef FixedImagePixelType FixedPixelType
typedef
FixedSampledPointSetType::ConstPointer 
FixedSampledPointSetConstPointer
typedef
FixedSampledPointSetType::Pointer 
FixedSampledPointSetPointer
typedef PointSet< typename
FixedImageType::PixelType,
itkGetStaticConstMacro(FixedImageDimension)> 
FixedSampledPointSetType
typedef
Superclass::FixedTransformParametersType 
FixedTransformParametersType
typedef
Superclass::FixedTransformPointer 
FixedTransformPointer
typedef
Superclass::GradientSourceType 
GradientSourceType
typedef CovariantVector
< MovingRealType,
itkGetStaticConstMacro(MovingImageDimension) > 
MovingGradientPixelType
typedef
MovingImageType::ConstPointer 
MovingImageConstPointer
typedef
MovingImageGradientCalculatorType::Pointer 
MovingImageGradientCalculatorPointer
typedef
MovingImageGradientFilterType::Pointer 
MovingImageGradientFilterPointer
typedef ImageToImageFilter
< MovingImageType,
MovingImageGradientImageType
MovingImageGradientFilterType
typedef
MovingImageGradientImageType::Pointer 
MovingImageGradientImagePointer
typedef Image
< MovingGradientPixelType,
itkGetStaticConstMacro(MovingImageDimension) > 
MovingImageGradientImageType
typedef MovingImageType::IndexType MovingImageIndexType
typedef
MovingImageMaskType::ConstPointer 
MovingImageMaskConstPointer
typedef
MovingImageMaskType::Pointer 
MovingImageMaskPointer
typedef SpatialObject
< itkGetStaticConstMacro(MovingImageDimension) > 
MovingImageMaskType
typedef MovingImageType::Pointer MovingImagePointer
typedef MovingImageType::RegionType MovingImageRegionType
typedef
Superclass::MovingInputPointType 
MovingInputPointType
typedef
MovingInterpolatorType::Pointer 
MovingInterpolatorPointer
typedef
InterpolateImageFunction
< MovingImageType,
CoordinateRepresentationType
MovingInterpolatorType
typedef MovingImagePixelType MovingPixelType
typedef NumericTraits
< MovingImagePixelType >
::RealType 
MovingRealType
typedef
Superclass::MovingTransformParametersType 
MovingTransformParametersType
typedef
Superclass::MovingTransformPointer 
MovingTransformPointer
typedef Superclass::ParametersType ParametersType
typedef
Superclass::ParametersValueType 
ParametersValueType
typedef
Superclass::VirtualDirectionType 
VirtualDirectionType
typedef
Superclass::VirtualImagePointer 
VirtualImagePointer
typedef
Superclass::VirtualIndexType 
VirtualIndexType
typedef
Superclass::VirtualPointType 
VirtualOriginType
typedef
Superclass::VirtualPixelType 
VirtualPixelType
typedef
Superclass::VirtualPointSetPointer 
VirtualPointSetPointer
typedef
Superclass::VirtualPointSetType 
VirtualPointSetType
typedef Superclass::VirtualSizeType VirtualRadiusType
typedef
Superclass::VirtualRegionType 
VirtualRegionType
typedef Superclass::VirtualSizeType VirtualSizeType
typedef
Superclass::VirtualSpacingType 
VirtualSpacingType
typedef NumericTraits
< FixedImagePixelType >
::RealType 
FixedRealType
typedef CovariantVector
< FixedRealType,
itkGetStaticConstMacro(FixedImageDimension) > 
FixedGradientPixelType
typedef Image
< FixedGradientPixelType,
itkGetStaticConstMacro(FixedImageDimension) > 
FixedImageGradientImageType
typedef
FixedImageGradientImageType::Pointer 
FixedImageGradientImagePointer
typedef ImageFunction
< FixedImageType,
CovariantVector< double,
itkGetStaticConstMacro(FixedImageDimension)>
, CoordinateRepresentationType
FixedImageGradientCalculatorType
typedef ImageFunction
< MovingImageType,
CovariantVector< double,
itkGetStaticConstMacro(MovingImageDimension)>
, CoordinateRepresentationType
MovingImageGradientCalculatorType
- Public Types inherited from itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage >
typedef
DisplacementFieldTransform
< CoordinateRepresentationType,
itkGetStaticConstMacro(MovingDimension) > 
MovingDisplacementFieldTransformType
typedef
VirtualImageType::ConstPointer 
VirtualImageConstPointer
- Public Types inherited from itk::ObjectToObjectMetricBase
- Public Types inherited from itk::SingleValuedCostFunctionv4
- Public Types inherited from itk::CostFunction
- Public Types inherited from itk::Object
- Public Types inherited from itk::LightObject

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual const char * GetNameOfClass () const
virtual RadiusType GetRadius ()
virtual RadiusType GetRadius () const
void Initialize (void) throw ( itk::ExceptionObject )
virtual void SetRadius (RadiusType _arg)
- Public Member Functions inherited from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >
virtual void GetDerivative (DerivativeType &) const
virtual const FixedImageTypeGetFixedImage ()
virtual const
FixedImageGradientImageType
GetFixedImageGradientImage ()
virtual const
FixedInterpolatorType
GetFixedInterpolator ()
virtual const MovingImageTypeGetMovingImage ()
virtual const
MovingImageGradientImageType
GetMovingImageGradientImage ()
virtual const
MovingInterpolatorType
GetMovingInterpolator ()
SizeValueType GetNumberOfDomainPoints () const
virtual const SizeValueTypeGetNumberOfSkippedFixedSampledPoints ()
virtual ThreadIdType GetNumberOfThreadsUsed () const
virtual SizeValueType GetNumberOfValidPoints () const
virtual MeasureType GetValue () const
virtual void GetValueAndDerivative (MeasureType &value, DerivativeType &derivative) const
virtual const VirtualPointSetTypeGetVirtualSampledPointSet ()
virtual void SetFixedImage (const FixedImageType *_arg)
virtual void SetFixedInterpolator (FixedInterpolatorType *_arg)
virtual void SetMovingImage (const MovingImageType *_arg)
virtual void SetMovingInterpolator (MovingInterpolatorType *_arg)
virtual bool SupportsArbitraryVirtualDomainSamples (void) const
virtual void SetMovingImageMask (MovingImageMaskType *_arg)
virtual void SetMovingImageMask (const MovingImageMaskType *_arg)
virtual const MovingImageMaskTypeGetMovingImageMask ()
virtual void SetFixedImageMask (FixedImageMaskType *_arg)
virtual void SetFixedImageMask (const FixedImageMaskType *_arg)
virtual const FixedImageMaskTypeGetFixedImageMask ()
virtual void SetFixedSampledPointSet (FixedSampledPointSetType *_arg)
virtual void SetFixedSampledPointSet (const FixedSampledPointSetType *_arg)
virtual const
FixedSampledPointSetType
GetFixedSampledPointSet ()
virtual void SetUseFixedSampledPointSet (bool _arg)
virtual const bool & GetUseFixedSampledPointSet ()
virtual void UseFixedSampledPointSetOn ()
virtual void UseFixedSampledPointSetOff ()
virtual void SetFixedImageGradientFilter (FixedImageGradientFilterType *_arg)
virtual
FixedImageGradientFilterType
GetFixedImageGradientFilter ()
virtual void SetMovingImageGradientFilter (MovingImageGradientFilterType *_arg)
virtual
MovingImageGradientFilterType
GetMovingImageGradientFilter ()
virtual void SetFixedImageGradientCalculator (FixedImageGradientCalculatorType *_arg)
virtual
FixedImageGradientCalculatorType
GetFixedImageGradientCalculator ()
virtual void SetMovingImageGradientCalculator (MovingImageGradientCalculatorType *_arg)
virtual
MovingImageGradientCalculatorType
GetMovingImageGradientCalculator ()
virtual void SetUseFixedImageGradientFilter (bool _arg)
virtual const bool & GetUseFixedImageGradientFilter ()
virtual void UseFixedImageGradientFilterOn ()
virtual void UseFixedImageGradientFilterOff ()
virtual void SetUseMovingImageGradientFilter (bool _arg)
virtual const bool & GetUseMovingImageGradientFilter ()
virtual void UseMovingImageGradientFilterOn ()
virtual void UseMovingImageGradientFilterOff ()
virtual void SetMaximumNumberOfThreads (const ThreadIdType threads)
virtual ThreadIdType GetMaximumNumberOfThreads () const
virtual void SetUseFloatingPointCorrection (bool _arg)
virtual const bool & GetUseFloatingPointCorrection ()
virtual void UseFloatingPointCorrectionOn ()
virtual void UseFloatingPointCorrectionOff ()
virtual void SetFloatingPointCorrectionResolution (DerivativeValueType _arg)
virtual DerivativeValueType GetFloatingPointCorrectionResolution () const
- Public Member Functions inherited from itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage >
OffsetValueType ComputeParameterOffsetFromVirtualIndex (const VirtualIndexType &index, const NumberOfParametersType &numberOfLocalParameters) const
OffsetValueType ComputeParameterOffsetFromVirtualPoint (const VirtualPointType &point, const NumberOfParametersType &numberOfLocalParameters) const
virtual const FixedTransformTypeGetFixedTransform ()
virtual const MovingTransformTypeGetMovingTransform ()
virtual NumberOfParametersType GetNumberOfLocalParameters () const
virtual NumberOfParametersType GetNumberOfParameters () const
virtual const ParametersTypeGetParameters () const
const MovingTransformTypeGetTransform ()
VirtualDirectionType GetVirtualDirection (void) const
virtual const TimeStampGetVirtualDomainTimeStamp (void) const
virtual const VirtualImageTypeGetVirtualImage ()
VirtualOriginType GetVirtualOrigin (void) const
const VirtualRegionTypeGetVirtualRegion (void) const
VirtualSpacingType GetVirtualSpacing (void) const
virtual bool HasLocalSupport () const
virtual void SetFixedTransform (FixedTransformType *_arg)
virtual void SetMovingTransform (MovingTransformType *_arg)
virtual void SetParameters (ParametersType &params)
void SetTransform (MovingTransformType *transform)
void SetVirtualDomain (const VirtualSpacingType &spacing, const VirtualOriginType &origin, const VirtualDirectionType &direction, const VirtualRegionType &region)
virtual void UpdateTransformParameters (const DerivativeType &derivative, ParametersValueType factor)
void SetVirtualDomainFromImage (VirtualImageType *virtualImage)
void SetVirtualDomainFromImage (const VirtualImageType *virtualImage)
bool IsInsideVirtualDomain (const VirtualPointType &point) const
bool IsInsideVirtualDomain (const VirtualIndexType &index) const
- Public Member Functions inherited from itk::ObjectToObjectMetricBase
MeasureType GetCurrentValue () const
virtual GradientSourceType GetGradientSource () const
bool GetGradientSourceIncludesFixed () const
bool GetGradientSourceIncludesMoving () const
virtual void GetValueAndDerivative (MeasureType &value, DerivativeType &derivative) const =0
virtual void SetGradientSource (GradientSourceType _arg)
- Public Member Functions inherited from itk::SingleValuedCostFunctionv4
virtual void GetValueAndDerivative (MeasureType &value, DerivativeType &derivative) const =0

Static Public Member Functions

static Pointer New ()

Static Public Attributes

static const ImageDimensionType FixedImageDimension = ::itk::GetImageDimension<FixedImageType>::ImageDimension
static const ImageDimensionType MovingImageDimension = ::itk::GetImageDimension<MovingImageType>::ImageDimension
static const ImageDimensionType VirtualImageDimension = ::itk::GetImageDimension<VirtualImageType>::ImageDimension
- Static Public Attributes inherited from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >
- Static Public Attributes inherited from itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage >
static const DimensionType FixedDimension
static const DimensionType MovingDimension
static const DimensionType VirtualDimension

Protected Types

typedef
ANTSNeighborhoodCorrelationImageToImageMetricv4DenseGetValueAndDerivativeThreader
< Superclass, Self
ANTSNeighborhoodCorrelationImageToImageMetricv4DenseGetValueAndDerivativeThreaderType
typedef
InternalComputationValueType 
QueueRealType
typedef
ConstNeighborhoodIterator
< VirtualImageType
ScanIteratorType
typedef struct
itk::ANTSNeighborhoodCorrelationImageToImageMetricv4::ScanMemType 
ScanMemType
typedef struct
itk::ANTSNeighborhoodCorrelationImageToImageMetricv4::ScanParametersType 
ScanParametersType
typedef std::deque< QueueRealTypeSumQueueType
- Protected Types inherited from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >
typedef
LinearInterpolateImageFunction
< FixedImageGradientImageType,
CoordinateRepresentationType
FixedImageGradientInterpolatorType
typedef
LinearInterpolateImageFunction
< MovingImageGradientImageType,
CoordinateRepresentationType
MovingImageGradientInterpolatorType

Protected Member Functions

 ANTSNeighborhoodCorrelationImageToImageMetricv4 ()
void InitializeScanning (const ImageRegionType &scanRegion, ScanIteratorType &scanIt, ScanMemType &scanMem, ScanParametersType &scanParameters) const
virtual void PrintSelf (std::ostream &os, Indent indent) const
virtual ~ANTSNeighborhoodCorrelationImageToImageMetricv4 ()
- Protected Member Functions inherited from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >
virtual void ComputeFixedImageGradientAtIndex (const VirtualIndexType &index, FixedImageGradientType &gradient) const
virtual void ComputeFixedImageGradientAtPoint (const FixedImagePointType &mappedPoint, FixedImageGradientType &gradient) const
virtual void ComputeFixedImageGradientFilterImage ()
virtual void ComputeMovingImageGradientAtIndex (const VirtualIndexType &index, MovingImageGradientType &gradient) const
virtual void ComputeMovingImageGradientAtPoint (const MovingImagePointType &mappedPoint, MovingImageGradientType &gradient) const
virtual void ComputeMovingImageGradientFilterImage () const
virtual void GetValueAndDerivativeExecute () const
 ImageToImageMetricv4 ()
virtual void InitializeForIteration () const
bool TransformAndEvaluateFixedPoint (const VirtualIndexType &index, const VirtualPointType &point, const bool computeImageGradient, FixedImagePointType &mappedFixedPoint, FixedImagePixelType &mappedFixedPixelValue, FixedImageGradientType &mappedFixedImageGradient) const
bool TransformAndEvaluateMovingPoint (const VirtualIndexType &index, const VirtualPointType &point, const bool computeImageGradient, MovingImagePointType &mappedMovingPoint, MovingImagePixelType &mappedMovingPixelValue, MovingImageGradientType &mappedMovingImageGradient) const
virtual ~ImageToImageMetricv4 ()
virtual void InitializeDefaultFixedImageGradientFilter (void)
virtual void InitializeDefaultMovingImageGradientFilter (void)
- Protected Member Functions inherited from itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage >
MovingDisplacementFieldTransformTypeGetMovingDisplacementFieldTransform () const
 ObjectToObjectMetric ()
bool TransformPhysicalPointToVirtualIndex (const VirtualPointType &, VirtualIndexType &) const
void TransformVirtualIndexToPhysicalPoint (const VirtualIndexType &, VirtualPointType &) const
virtual void VerifyDisplacementFieldSizeAndPhysicalSpace ()
bool VerifyNumberOfValidPoints (MeasureType &value, DerivativeType &derivative) const
virtual ~ObjectToObjectMetric ()
- Protected Member Functions inherited from itk::ObjectToObjectMetricBase
 ObjectToObjectMetricBase ()
virtual ~ObjectToObjectMetricBase ()
- Protected Member Functions inherited from itk::SingleValuedCostFunctionv4
 SingleValuedCostFunctionv4 ()
virtual ~SingleValuedCostFunctionv4 ()
- Protected Member Functions inherited from itk::CostFunction
 CostFunction ()
virtual ~CostFunction ()
- Protected Member Functions inherited from itk::Object
 Object ()
bool PrintObservers (std::ostream &os, Indent indent) const
virtual void SetTimeStamp (const TimeStamp &time)
virtual ~Object ()
- Protected Member Functions inherited from itk::LightObject
virtual LightObject::Pointer InternalClone () const
 LightObject ()
virtual void PrintHeader (std::ostream &os, Indent indent) const
virtual void PrintTrailer (std::ostream &os, Indent indent) const
virtual ~LightObject ()

Private Member Functions

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

Private Attributes

RadiusType m_Radius

Friends

class ANTSNeighborhoodCorrelationImageToImageMetricv4DenseGetValueAndDerivativeThreader< Superclass, Self >

Additional Inherited Members

- Protected Attributes inherited from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >
DefaultFixedImageGradientFilter::Pointer m_DefaultFixedImageGradientFilter
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_UseFixedSampledPointSet
bool m_UseMovingImageGradientFilter
VirtualPointSetPointer m_VirtualSampledPointSet
- Protected Attributes inherited from itk::ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage >
FixedTransformPointer m_FixedTransform
MovingTransformPointer m_MovingTransform
SizeValueType m_NumberOfValidPoints
bool m_UserHasSetVirtualDomain
VirtualImagePointer m_VirtualImage
- Protected Attributes inherited from itk::ObjectToObjectMetricBase
GradientSourceType m_GradientSource
MeasureType m_Value

Detailed Description

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

Computes normalized cross correlation using a small neighborhood for each voxel between two images, with speed optimizations for dense registration.

Please cite this reference for more details:

Brian B. Avants, Nicholas J. Tustison, Gang Song, Philip A. Cook, Arno Klein, James C. Gee, A reproducible evaluation of ANTs similarity metric performance in brain image registration, NeuroImage, Volume 54, Issue 3, 1 February 2011, Pages 2033-2044, ISSN 1053-8119, DOI: 10.1016/j.neuroimage.2010.09.025.

Around each voxel, the neighborhood is defined as a N-Dimensional rectangle centered at the voxel. The size of the rectangle is 2*radius+1. The normalized correlation between neighborhoods of fixed image and moving image are averaged over the whole image as the final metric.

Note:
A radius less than 2 can be unstable. 2 is the default.

This class uses a specific fast implementation that is described in the above paper. There are two particular speed-ups:

1) It is assumed that the derivative is only affected by changes in the transform at the center of the window. This is obviously not true but speeds the evaluation up considerably and works well in practice. This assumption is the main differentiation of this approach from a more generic one.

2) The evaluation uses on-the-fly queues with multi-threading and a sliding neighborhood window. This is described in the above paper and specifically optimized for dense registration.

Example of usage:

typedef itk::ANTSNeighborhoodCorrelationImageToImageMetricv4 <ImageType, ImageType> MetricType; typedef MetricType::Pointer MetricTypePointer; MetricTypePointer metric = MetricType::New();

// set all parameters Size<Dimension> neighborhoodRadius; neighborhoodRadius.Fill(2); metric->SetRadius(neighborhood_radius); metric->SetFixedImage(fixedImage); metric->SetMovingImage(movingImage); metric->SetFixedTransform(transformFix); metric->SetMovingTransform(transformMov);

// initialization after parameters are set. metric->Initialize();

// getting derivative and metric value metric->GetValueAndDerivative(valueReturn, derivativeReturn);

This class is templated over the type of the two input objects. This is the 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.

Note:
Sparse sampling is not supported by this metric. An exception will be thrown if m_UseFixedSampledPointSet is set. Support for sparse sampling will require a parallel implementation of the neighborhood scanning, which currently caches information as the neighborhood window moves.

Definition at line 98 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.


Member Typedef Documentation

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef SmartPointer<const Self> itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::ConstPointer
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::DerivativeType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::DerivativeType

Type of the metric derivative.

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

Definition at line 117 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::DerivativeValueType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::DerivativeValueType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::FixedImageGradientType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedImageGradientType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef FixedTransformType::JacobianType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedImageJacobianType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::FixedImagePixelType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedImagePixelType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::FixedImagePointType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedImagePointType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::FixedImageType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedImageType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::FixedOutputPointType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedOutputPointType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::FixedTransformType::JacobianType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedTransformJacobianType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::FixedTransformType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedTransformType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::ImageDimensionType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::ImageDimensionType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef VirtualImageType::RegionType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::ImageRegionType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef VirtualImageType::IndexType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::IndexType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::InternalComputationValueType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::InternalComputationValueType

Type used internally for computations

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

Definition at line 141 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.

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

Jacobian type. This is the same for all transforms

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

Definition at line 131 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::MeasureType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MeasureType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::MovingImageGradientType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingImageGradientType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef MovingTransformType::JacobianType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingImageJacobianType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::MovingImagePixelType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingImagePixelType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::MovingImagePointType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingImagePointType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::MovingImageType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingImageType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::MovingOutputPointType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingOutputPointType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::MovingTransformType::JacobianType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingTransformJacobianType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::MovingTransformType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingTransformType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::NumberOfParametersType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::NumberOfParametersType

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

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

Definition at line 148 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef SmartPointer<Self> itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::Pointer
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef InternalComputationValueType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::QueueRealType
protected
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef VirtualImageType::SizeType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::RadiusType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef ConstNeighborhoodIterator<VirtualImageType> itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::ScanIteratorType
protected
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef struct itk::ANTSNeighborhoodCorrelationImageToImageMetricv4::ScanMemType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::ScanMemType
protected
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef struct itk::ANTSNeighborhoodCorrelationImageToImageMetricv4::ScanParametersType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::ScanParametersType
protected
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef ANTSNeighborhoodCorrelationImageToImageMetricv4 itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::Self
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef std::deque<QueueRealType> itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::SumQueueType
protected
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef ImageToImageMetricv4<TFixedImage, TMovingImage, TVirtualImage> itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::Superclass
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::VirtualImageGradientType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::VirtualImageGradientType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::VirtualImageType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::VirtualImageType
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
typedef Superclass::VirtualPointType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::VirtualPointType

Constructor & Destructor Documentation

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::ANTSNeighborhoodCorrelationImageToImageMetricv4 ( )
protected
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
virtual itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::~ANTSNeighborhoodCorrelationImageToImageMetricv4 ( )
protectedvirtual
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::ANTSNeighborhoodCorrelationImageToImageMetricv4 ( const Self )
private

Member Function Documentation

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

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

Reimplemented from itk::Object.

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

Run-time type information (and related methods).

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

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
virtual RadiusType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::GetRadius ( )
virtual
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
virtual RadiusType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::GetRadius ( ) const
virtual
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
void itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::Initialize ( void  ) throw ( itk::ExceptionObject )
virtual

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

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

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
void itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::InitializeScanning ( const ImageRegionType scanRegion,
ScanIteratorType scanIt,
ScanMemType scanMem,
ScanParametersType scanParameters 
) const
protected

Create an iterator over the virtual sub region

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

Method for creation through the object factory.

Reimplemented from itk::Object.

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

Mutex lock to protect modification to the reference count

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

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
virtual void itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
protectedvirtual

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

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

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
virtual void itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::SetRadius ( RadiusType  _arg)
virtual

Friends And Related Function Documentation

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
friend class ANTSNeighborhoodCorrelationImageToImageMetricv4DenseGetValueAndDerivativeThreader< Superclass, Self >
friend

Member Data Documentation

template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
const ImageDimensionType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedImageDimension = ::itk::GetImageDimension<FixedImageType>::ImageDimension
static
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
RadiusType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::m_Radius
private
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
const ImageDimensionType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingImageDimension = ::itk::GetImageDimension<MovingImageType>::ImageDimension
static
template<class TFixedImage , class TMovingImage , class TVirtualImage = TFixedImage>
const ImageDimensionType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::VirtualImageDimension = ::itk::GetImageDimension<VirtualImageType>::ImageDimension
static

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