ITK
4.13.0
Insight Segmentation and Registration Toolkit
|
#include <itkVariationalRegistrationNCCFunction.h>
This class computes NCC forces in the variational registration framework.
This class implements NCC forces as given in Hermosillo, Chefd'Hotel, and Faugeras. "Variational methods for multimodal image matching." IJCV 50(3), 2002: 329-343 and Avants et al. "Symmetric diffeomorphic image registration with cross-correlation: evaluating automated labeling of elderly and neurodegenerative brain." Medical image analysis 12(1), 2008: 26-41 (except Jacobian term). We define the derivative of NCC between two images as:
is the step size and is the mean squared spacing. Use SetRadius() (see FiniteDifferenceFunction) to set the size of the neighbourhood to compute local mean values and and the local sums. Alternative, the classical gradient can be replaced by or .
Definition at line 64 of file itkVariationalRegistrationNCCFunction.h.
Static Public Member Functions | |
static Pointer | New () |
Static Public Member Functions inherited from itk::LightObject | |
static void | BreakOnError () |
static Pointer | New () |
Static Public Attributes | |
static const unsigned int | ImageDimension = Superclass::ImageDimension |
Static Public Attributes inherited from itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField > | |
static const unsigned int | ImageDimension = Superclass::ImageDimension |
Static Public Attributes inherited from itk::FiniteDifferenceFunction< TDisplacementField > | |
static const unsigned int | ImageDimension |
Protected Types | |
typedef ConstNeighborhoodIterator < FixedImageType > | FixedImageNeighborhoodIteratorType |
typedef Superclass::GlobalDataStruct | GlobalDataStruct |
enum | GradientType { GRADIENT_TYPE_WARPED = 0, GRADIENT_TYPE_FIXED = 1, GRADIENT_TYPE_SYMMETRIC = 2 } |
Protected Member Functions | |
virtual void | PrintSelf (std::ostream &os, Indent indent) const override |
VariationalRegistrationNCCFunction () | |
~VariationalRegistrationNCCFunction () | |
Protected Member Functions inherited from itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField > | |
virtual const WarpedImagePointer | GetWarpedImage (void) const |
VariationalRegistrationFunction () | |
virtual void | WarpMovingImage (void) |
~VariationalRegistrationFunction () | |
Protected Member Functions inherited from itk::FiniteDifferenceFunction< TDisplacementField > | |
FiniteDifferenceFunction () | |
~FiniteDifferenceFunction () override | |
Protected Member Functions inherited from itk::LightObject | |
virtual LightObject::Pointer | InternalClone () const |
LightObject () | |
virtual void | PrintHeader (std::ostream &os, Indent indent) const |
virtual void | PrintTrailer (std::ostream &os, Indent indent) const |
virtual | ~LightObject () |
Protected Attributes | |
GradientCalculatorPointer | m_FixedImageGradientCalculator |
GradientType | m_GradientType |
double | m_Normalizer |
GradientCalculatorPointer | m_WarpedImageGradientCalculator |
Protected Attributes inherited from itk::FiniteDifferenceFunction< TDisplacementField > | |
RadiusType | m_Radius |
PixelRealType | m_ScaleCoefficients [ImageDimension] |
Protected Attributes inherited from itk::LightObject | |
AtomicInt< int > | m_ReferenceCount |
Private Member Functions | |
void | operator= (const Self &) |
VariationalRegistrationNCCFunction (const Self &) | |
typedef SmartPointer< const Self > itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >::ConstPointer |
Definition at line 73 of file itkVariationalRegistrationNCCFunction.h.
typedef Superclass::DisplacementFieldType itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >::DisplacementFieldType |
Deformation field type.
Definition at line 101 of file itkVariationalRegistrationNCCFunction.h.
typedef Superclass::DisplacementFieldTypePointer itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >::DisplacementFieldTypePointer |
Definition at line 103 of file itkVariationalRegistrationNCCFunction.h.
|
protected |
FixedImage image neighborhood iterator type.
Definition at line 152 of file itkVariationalRegistrationNCCFunction.h.
typedef Superclass::FixedImagePointer itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >::FixedImagePointer |
Definition at line 90 of file itkVariationalRegistrationNCCFunction.h.
typedef Superclass::FixedImageType itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >::FixedImageType |
FixedImage image type.
Definition at line 89 of file itkVariationalRegistrationNCCFunction.h.
typedef Superclass::FloatOffsetType itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >::FloatOffsetType |
Definition at line 109 of file itkVariationalRegistrationNCCFunction.h.
|
protected |
Definition at line 154 of file itkVariationalRegistrationNCCFunction.h.
typedef GradientCalculatorType::Pointer itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >::GradientCalculatorPointer |
Definition at line 114 of file itkVariationalRegistrationNCCFunction.h.
typedef CentralDifferenceImageFunction<FixedImageType> itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >::GradientCalculatorType |
Gradient calculator type.
Definition at line 113 of file itkVariationalRegistrationNCCFunction.h.
typedef FixedImageType::IndexType itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >::IndexType |
Definition at line 96 of file itkVariationalRegistrationNCCFunction.h.
typedef Superclass::MaskImagePointer itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >::MaskImagePointer |
Definition at line 94 of file itkVariationalRegistrationNCCFunction.h.
typedef Superclass::MaskImageType itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >::MaskImageType |
MaskImage image type.
Definition at line 93 of file itkVariationalRegistrationNCCFunction.h.
typedef Superclass::MovingImagePointer itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >::MovingImagePointer |
Definition at line 86 of file itkVariationalRegistrationNCCFunction.h.
typedef Superclass::MovingImageType itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >::MovingImageType |
MovingImage image type.
Definition at line 85 of file itkVariationalRegistrationNCCFunction.h.
typedef Superclass::NeighborhoodType itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >::NeighborhoodType |
Definition at line 108 of file itkVariationalRegistrationNCCFunction.h.
typedef Superclass::PixelType itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >::PixelType |
Inherit some types from the superclass.
Definition at line 106 of file itkVariationalRegistrationNCCFunction.h.
typedef SmartPointer< Self > itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >::Pointer |
Definition at line 72 of file itkVariationalRegistrationNCCFunction.h.
typedef Superclass::RadiusType itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >::RadiusType |
Definition at line 107 of file itkVariationalRegistrationNCCFunction.h.
typedef VariationalRegistrationNCCFunction itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >::Self |
Standard class typedefs.
Definition at line 69 of file itkVariationalRegistrationNCCFunction.h.
typedef FixedImageType::SizeType itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >::SizeType |
Definition at line 97 of file itkVariationalRegistrationNCCFunction.h.
typedef FixedImageType::SpacingType itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >::SpacingType |
Definition at line 98 of file itkVariationalRegistrationNCCFunction.h.
typedef VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField > itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >::Superclass |
Definition at line 71 of file itkVariationalRegistrationNCCFunction.h.
|
protected |
Type of available image forces
Enumerator | |
---|---|
GRADIENT_TYPE_WARPED | |
GRADIENT_TYPE_FIXED | |
GRADIENT_TYPE_SYMMETRIC |
Definition at line 157 of file itkVariationalRegistrationNCCFunction.h.
|
protected |
|
inlineprotected |
Definition at line 146 of file itkVariationalRegistrationNCCFunction.h.
|
private |
|
inlineoverridevirtual |
Computes the time step for an update. Returns the constant time step scaled with the mean squared spacing.
Reimplemented from itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >.
Definition at line 141 of file itkVariationalRegistrationNCCFunction.h.
References itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::GetTimeStep(), and itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >::m_Normalizer.
|
overridevirtual |
This method is called by a finite difference solver image filter at each pixel that does not lie on a data set boundary
Implements itk::FiniteDifferenceFunction< TDisplacementField >.
Reimplemented in itk::VariationalRegistrationFastNCCFunction< TFixedImage, TMovingImage, TDisplacementField >.
|
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::LightObject.
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >.
Reimplemented in itk::VariationalRegistrationFastNCCFunction< TFixedImage, TMovingImage, TDisplacementField >.
|
overridevirtual |
Set the object's state before each iteration.
Reimplemented from itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >.
|
static |
Method for creation through the object factory.
|
private |
|
overrideprotectedvirtual |
Print information about the filter.
Reimplemented from itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >.
Reimplemented in itk::VariationalRegistrationFastNCCFunction< TFixedImage, TMovingImage, TDisplacementField >.
|
inlinevirtual |
Select that the fixed image gradient is used for computing the forces.
Definition at line 126 of file itkVariationalRegistrationNCCFunction.h.
References itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >::GRADIENT_TYPE_FIXED, and itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >::m_GradientType.
|
inlinevirtual |
Select that fixed and warped image gradients are used for computing the forces.
Definition at line 135 of file itkVariationalRegistrationNCCFunction.h.
References itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >::GRADIENT_TYPE_SYMMETRIC, and itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >::m_GradientType.
|
inlinevirtual |
Select that the warped image gradient is used for computing the forces.
Definition at line 130 of file itkVariationalRegistrationNCCFunction.h.
References itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >::GRADIENT_TYPE_WARPED, and itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >::m_GradientType.
|
static |
Get image dimension.
Definition at line 82 of file itkVariationalRegistrationNCCFunction.h.
|
protected |
Function to compute derivatives of the fixed image.
Definition at line 164 of file itkVariationalRegistrationNCCFunction.h.
|
protected |
Set if warped or fixed image gradient is used for force computation.
Definition at line 170 of file itkVariationalRegistrationNCCFunction.h.
Referenced by itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >::SetGradientTypeToFixedImage(), itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >::SetGradientTypeToSymmetric(), and itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >::SetGradientTypeToWarpedMovingImage().
|
protected |
Precalculated normalizer for spacing consideration.
Definition at line 173 of file itkVariationalRegistrationNCCFunction.h.
Referenced by itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >::ComputeGlobalTimeStep().
|
protected |
Function to compute derivatives of the warped image.
Definition at line 167 of file itkVariationalRegistrationNCCFunction.h.