ITK
4.1.0
Insight Segmentation and Registration Toolkit
|
#include <itkANTSNeighborhoodCorrelationImageToImageMetricv4.h>
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.
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.
Definition at line 92 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef ANTSNeighborhoodCorrelationImageToImageMetricv4DenseGetValueAndDerivativeThreader< Superclass, Self > itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::ANTSNeighborhoodCorrelationImageToImageMetricv4DenseGetValueAndDerivativeThreaderType [protected] |
Definition at line 217 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef SmartPointer<const Self> itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::ConstPointer |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 101 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::DerivativeType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::DerivativeType |
Type of the metric derivative.
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 111 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::DerivativeValueType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::DerivativeValueType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 112 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::FixedImageGradientType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedImageGradientType |
Image derivatives types
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 117 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef FixedTransformType::JacobianType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedImageJacobianType |
Definition at line 118 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::FixedImagePixelType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedImagePixelType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 115 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::FixedImagePointType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedImagePointType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 114 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::FixedImageType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedImageType |
Image-accessor typedefs
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 129 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::FixedOutputPointType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedOutputPointType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 132 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::FixedTransformType::JacobianType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedTransformJacobianType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 138 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::FixedTransformType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedTransformType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 116 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::ImageDimensionType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::ImageDimensionType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 143 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef VirtualImageType::RegionType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::ImageRegionType |
Definition at line 145 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef VirtualImageType::IndexType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::IndexType |
Definition at line 147 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::InternalComputationValueType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::InternalComputationValueType |
Type used internally for computations
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 135 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
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 125 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::MeasureType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MeasureType |
superclass types
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 107 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::MovingImageGradientType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingImageGradientType |
Image derivatives types
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 122 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef MovingTransformType::JacobianType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingImageJacobianType |
Definition at line 124 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::MovingImagePixelType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingImagePixelType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 121 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::MovingImagePointType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingImagePointType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 120 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::MovingImageType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingImageType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 130 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::MovingOutputPointType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingOutputPointType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 133 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::MovingTransformType::JacobianType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingTransformJacobianType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 140 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::MovingTransformType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingTransformType |
Type of the Transform Base classes
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 123 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
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 142 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef SmartPointer<Self> itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::Pointer |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 100 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef InternalComputationValueType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::QueueRealType [protected] |
Definition at line 171 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef VirtualImageType::SizeType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::RadiusType |
Definition at line 146 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef ConstNeighborhoodIterator<VirtualImageType> itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::ScanIteratorType [protected] |
Definition at line 173 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef struct itk::ANTSNeighborhoodCorrelationImageToImageMetricv4::ScanMemType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::ScanMemType [protected] |
typedef struct itk::ANTSNeighborhoodCorrelationImageToImageMetricv4::ScanParametersType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::ScanParametersType [protected] |
typedef ANTSNeighborhoodCorrelationImageToImageMetricv4 itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::Self |
Standard class typedefs.
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 98 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef std::deque<QueueRealType> itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::SumQueueType [protected] |
Definition at line 172 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef ImageToImageMetricv4<TFixedImage, TMovingImage, TVirtualImage> itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::Superclass |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 99 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::VirtualImageGradientType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::VirtualImageGradientType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 127 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::VirtualImageType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::VirtualImageType |
Types for the virtual domain
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 131 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::VirtualPointType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::VirtualPointType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 113 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::ANTSNeighborhoodCorrelationImageToImageMetricv4 | ( | ) | [protected] |
virtual itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::~ANTSNeighborhoodCorrelationImageToImageMetricv4 | ( | ) | [protected, virtual] |
itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::ANTSNeighborhoodCorrelationImageToImageMetricv4 | ( | const Self & | ) | [private] |
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.
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 >.
virtual RadiusType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::GetRadius | ( | ) | [virtual] |
virtual RadiusType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::GetRadius | ( | ) | const [virtual] |
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
static Pointer itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::New | ( | ) | [static] |
Method for creation through the object factory.
Reimplemented from itk::Object.
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 >.
virtual void itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::PrintSelf | ( | std::ostream & | os, |
Indent | indent | ||
) | const [protected, virtual] |
Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
virtual void itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::SetRadius | ( | RadiusType | _arg | ) | [virtual] |
friend class ANTSNeighborhoodCorrelationImageToImageMetricv4DenseGetValueAndDerivativeThreader< Superclass, Self > [friend] |
Definition at line 215 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
const ImageDimensionType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedImageDimension = ::itk::GetImageDimension<FixedImageType>::ImageDimension [static] |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 151 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
RadiusType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::m_Radius [private] |
Definition at line 231 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
const ImageDimensionType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingImageDimension = ::itk::GetImageDimension<MovingImageType>::ImageDimension [static] |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 154 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
const ImageDimensionType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::VirtualImageDimension = ::itk::GetImageDimension<VirtualImageType>::ImageDimension [static] |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 157 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.