ITK
4.2.0
Insight Segmentation and Registration Toolkit
|
#include <itkANTSNeighborhoodCorrelationImageToImageMetricv4.h>
Classes | |
struct | ScanMemType |
struct | ScanParametersType |
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 |
Private Member Functions | |
ANTSNeighborhoodCorrelationImageToImageMetricv4 (const Self &) | |
void | operator= (const Self &) |
Private Attributes | |
RadiusType | m_Radius |
Friends | |
class | ANTSNeighborhoodCorrelationImageToImageMetricv4DenseGetValueAndDerivativeThreader< Superclass, Self > |
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 98 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
protected |
Definition at line 227 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef SmartPointer<const Self> itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::ConstPointer |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 107 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 117 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::DerivativeValueType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::DerivativeValueType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 118 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 123 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef FixedTransformType::JacobianType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedImageJacobianType |
Definition at line 124 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::FixedImagePixelType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedImagePixelType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 121 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::FixedImagePointType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedImagePointType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 120 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 135 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::FixedOutputPointType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedOutputPointType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 138 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::FixedTransformType::JacobianType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedTransformJacobianType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 144 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::FixedTransformType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::FixedTransformType |
Transform types from Superclass
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 122 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::ImageDimensionType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::ImageDimensionType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 149 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef VirtualImageType::RegionType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::ImageRegionType |
Definition at line 151 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef VirtualImageType::IndexType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::IndexType |
Definition at line 153 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 141 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 131 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 113 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 128 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef MovingTransformType::JacobianType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingImageJacobianType |
Definition at line 130 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::MovingImagePixelType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingImagePixelType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 127 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::MovingImagePointType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingImagePointType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 126 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::MovingImageType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingImageType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 136 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::MovingOutputPointType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingOutputPointType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 139 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::MovingTransformType::JacobianType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::MovingTransformJacobianType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 146 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 129 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 148 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef SmartPointer<Self> itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::Pointer |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 106 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
|
protected |
Definition at line 181 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef VirtualImageType::SizeType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::RadiusType |
Definition at line 152 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
|
protected |
Definition at line 183 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
|
protected |
|
protected |
typedef ANTSNeighborhoodCorrelationImageToImageMetricv4 itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::Self |
Standard class typedefs.
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 104 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
|
protected |
Definition at line 182 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 105 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::VirtualImageGradientType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::VirtualImageGradientType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 133 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 137 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
typedef Superclass::VirtualPointType itk::ANTSNeighborhoodCorrelationImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >::VirtualPointType |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 119 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
|
protected |
|
protectedvirtual |
|
private |
|
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 |
Run-time type information (and related methods).
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
|
virtual |
|
virtual |
|
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 >.
|
protected |
Create an iterator over the virtual sub region
|
static |
Method for creation through the object factory.
Reimplemented from itk::Object.
|
private |
Mutex lock to protect modification to the reference count
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
|
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 >.
|
virtual |
|
friend |
Definition at line 225 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
|
static |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 157 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
|
private |
Definition at line 241 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
|
static |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 160 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.
|
static |
Reimplemented from itk::ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage >.
Definition at line 163 of file itkANTSNeighborhoodCorrelationImageToImageMetricv4.h.