ITK
4.2.0
Insight Segmentation and Registration Toolkit
|
#include <itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h>
Public Types | |
typedef SmartPointer< const Self > | ConstPointer |
typedef Superclass::CoordRepType | CoordRepType |
typedef DensityFunctionType::Pointer | DensityFunctionPointer |
typedef ManifoldParzenWindowsPointSetFunction < PointSetType, RealType > | DensityFunctionType |
typedef Superclass::DerivativeType | DerivativeType |
typedef Superclass::DerivativeValueType | DerivativeValueType |
typedef Superclass::FixedTransformJacobianType | FixedTransformJacobianType |
typedef DensityFunctionType::GaussianType | GaussianType |
typedef Superclass::JacobianType | JacobianType |
typedef Superclass::LocalDerivativeType | LocalDerivativeType |
typedef Superclass::MeasureType | MeasureType |
typedef Superclass::MovingTransformJacobianType | MovingTransformJacobianType |
typedef Superclass::NeighborsIdentifierType | NeighborsIdentifierType |
typedef Superclass::NumberOfParametersType | NumberOfParametersType |
typedef SmartPointer< Self > | Pointer |
typedef Superclass::PointIdentifier | PointIdentifier |
typedef PointSetType::PointsContainer | PointsContainer |
typedef PointsContainer::ConstIterator | PointsContainerConstIterator |
typedef TPointSet | PointSetType |
typedef Superclass::PointType | PointType |
typedef MeasureType | RealType |
typedef JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4 | Self |
typedef PointSetToPointSetMetricv4 < TPointSet, TPointSet > | Superclass |
Public Types inherited from itk::PointSetToPointSetMetricv4< TPointSet, TPointSet > | |
typedef Superclass::DimensionType | DimensionType |
typedef Superclass::FixedInputPointType | FixedInputPointType |
typedef Superclass::FixedOutputPointType | FixedOutputPointType |
typedef TPointSet::PixelType | FixedPixelType |
typedef TPointSet::PointsContainer | FixedPointsContainer |
typedef TPointSet | FixedPointSetType |
typedef TPointSet::PointType | FixedPointType |
typedef PointSet < FixedPixelType, itkGetStaticConstMacro(PointDimension)> | FixedTransformedPointSetType |
typedef Superclass::FixedTransformParametersType | FixedTransformParametersType |
typedef Superclass::FixedTransformPointer | FixedTransformPointer |
typedef Superclass::FixedTransformType | FixedTransformType |
typedef Superclass::MovingInputPointType | MovingInputPointType |
typedef Superclass::MovingOutputPointType | MovingOutputPointType |
typedef TPointSet::PixelType | MovingPixelType |
typedef TPointSet::PointsContainer | MovingPointsContainer |
typedef TPointSet | MovingPointSetType |
typedef TPointSet::PointType | MovingPointType |
typedef PointSet < MovingPixelType, itkGetStaticConstMacro(PointDimension)> | MovingTransformedPointSetType |
typedef Superclass::MovingTransformParametersType | MovingTransformParametersType |
typedef Superclass::MovingTransformPointer | MovingTransformPointer |
typedef Superclass::MovingTransformType | MovingTransformType |
typedef Superclass::ParametersType | ParametersType |
typedef Superclass::ParametersValueType | ParametersValueType |
typedef PointsContainer::ConstIterator | PointsConstIterator |
typedef PointsLocator < PointIdentifier, itkGetStaticConstMacro(PointDimension), CoordRepType, PointsContainer > | PointsLocatorType |
typedef Superclass::VirtualDirectionType | VirtualDirectionType |
typedef Superclass::VirtualImagePointer | VirtualImagePointer |
typedef Superclass::VirtualImageType | VirtualImageType |
typedef Superclass::VirtualIndexType | VirtualIndexType |
typedef Superclass::VirtualPointType | VirtualOriginType |
typedef Superclass::VirtualPixelType | VirtualPixelType |
typedef Superclass::VirtualPointSetPointer | VirtualPointSetPointer |
typedef Superclass::VirtualPointSetType | VirtualPointSetType |
typedef Superclass::VirtualPointType | VirtualPointType |
typedef Superclass::VirtualSizeType | VirtualRadiusType |
typedef Superclass::VirtualRegionType | VirtualRegionType |
typedef Superclass::VirtualSizeType | VirtualSizeType |
typedef Superclass::VirtualSpacingType | VirtualSpacingType |
Public Types inherited from itk::ObjectToObjectMetric< TPointSet::PointDimension, TPointSet::PointDimension > | |
typedef Superclass::ParametersValueType | CoordinateRepresentationType |
typedef Superclass::InternalComputationValueType | InternalComputationValueType |
typedef DisplacementFieldTransform < CoordinateRepresentationType, itkGetStaticConstMacro(MovingDimension) > | MovingDisplacementFieldTransformType |
typedef VirtualImageType::ConstPointer | VirtualImageConstPointer |
Public Types inherited from itk::ObjectToObjectMetricBase | |
enum | GradientSourceType { GRADIENT_SOURCE_FIXED = 0, GRADIENT_SOURCE_MOVING, GRADIENT_SOURCE_BOTH } |
Public Types inherited from itk::SingleValuedCostFunctionv4 | |
Public Types inherited from itk::CostFunction | |
Public Types inherited from itk::Object | |
Public Types inherited from itk::LightObject |
Static Public Member Functions | |
static Pointer | New () |
Static Public Attributes | |
static const unsigned int | PointDimension = TPointSet::PointDimension |
Static Public Attributes inherited from itk::PointSetToPointSetMetricv4< TPointSet, TPointSet > | |
static const DimensionType | FixedPointDimension |
static const DimensionType | MovingPointDimension |
Static Public Attributes inherited from itk::ObjectToObjectMetric< TPointSet::PointDimension, TPointSet::PointDimension > | |
static const DimensionType | FixedDimension |
static const DimensionType | MovingDimension |
static const DimensionType | VirtualDimension |
Private Member Functions | |
JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4 (const Self &) | |
void | operator= (const Self &) |
Additional Inherited Members | |
Protected Attributes inherited from itk::PointSetToPointSetMetricv4< TPointSet, TPointSet > | |
FixedPointSetType::ConstPointer | m_FixedPointSet |
FixedTransformedPointSetType::Pointer | m_FixedTransformedPointSet |
PointsLocatorType::Pointer | m_FixedTransformedPointsLocator |
MovingPointSetType::ConstPointer | m_MovingPointSet |
MovingTransformedPointSetType::Pointer | m_MovingTransformedPointSet |
PointsLocatorType::Pointer | m_MovingTransformedPointsLocator |
VirtualPointSetPointer | m_VirtualTransformedPointSet |
Protected Attributes inherited from itk::ObjectToObjectMetric< TPointSet::PointDimension, TPointSet::PointDimension > | |
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 |
Implementation of the Jensen Havrda Charvat Tsallis Point Set metric.
Given a specified transform and direction, this class calculates the value and derivative between a "fixed" and "moving" point set pair using the Havrda-Charvat-Tsallis entropy family, a generalization of the well-known Shannon entropy, and the Jensen divergence. Another way to look at the family of information-theoretic measures is that the points are used to construct the corresponding probably density functions.
In addition, we allow the user to invoke a manifold parzen windowing of the data. Instead of an isotropic Gaussian being associated with each point, we can actually calculate the covariance matrix for each point such that it reflects the locate point set structure.
To speed up the metric calculation, we use ITK's K-d tree to query the metric value only for a given neighborhood. Considering that probably only a small subset of points is needed to get a good approximation of the metric value for a single point, this is probably warranted. So what we do is transform each point (with the specified transform) and construct the k-d tree from the transformed points.
Contributed by Nicholas J. Tustison, James C. Gee in the Insight Journal paper: http://hdl.handle.net/1926/1524
N.J. Tustison, S. P. Awate, G. Song, T. S. Cook, and J. C. Gee. "Point set registration using Havrda-Charvat-Tsallis entropy measures" IEEE Transactions on Medical Imaging, 30(2):451-60, 2011.
Definition at line 71 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
typedef SmartPointer<const Self> itk::JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4< TPointSet >::ConstPointer |
Reimplemented from itk::PointSetToPointSetMetricv4< TPointSet, TPointSet >.
Definition at line 79 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
typedef Superclass::CoordRepType itk::JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4< TPointSet >::CoordRepType |
Reimplemented from itk::PointSetToPointSetMetricv4< TPointSet, TPointSet >.
Definition at line 99 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
typedef DensityFunctionType::Pointer itk::JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4< TPointSet >::DensityFunctionPointer |
Definition at line 116 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
typedef ManifoldParzenWindowsPointSetFunction<PointSetType, RealType> itk::JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4< TPointSet >::DensityFunctionType |
Other typedefs
Definition at line 114 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
typedef Superclass::DerivativeType itk::JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4< TPointSet >::DerivativeType |
Type of the derivative.
Reimplemented from itk::PointSetToPointSetMetricv4< TPointSet, TPointSet >.
Definition at line 95 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
typedef Superclass::DerivativeValueType itk::JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4< TPointSet >::DerivativeValueType |
Reimplemented from itk::PointSetToPointSetMetricv4< TPointSet, TPointSet >.
Definition at line 96 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
typedef Superclass::FixedTransformJacobianType itk::JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4< TPointSet >::FixedTransformJacobianType |
Reimplemented from itk::PointSetToPointSetMetricv4< TPointSet, TPointSet >.
Definition at line 105 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
typedef DensityFunctionType::GaussianType itk::JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4< TPointSet >::GaussianType |
Definition at line 115 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
typedef Superclass::JacobianType itk::JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4< TPointSet >::JacobianType |
Jacobian type. This is the same for all transforms
Reimplemented from itk::PointSetToPointSetMetricv4< TPointSet, TPointSet >.
Definition at line 104 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
typedef Superclass::LocalDerivativeType itk::JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4< TPointSet >::LocalDerivativeType |
Reimplemented from itk::PointSetToPointSetMetricv4< TPointSet, TPointSet >.
Definition at line 97 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
typedef Superclass::MeasureType itk::JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4< TPointSet >::MeasureType |
Types transferred from the base class
Reimplemented from itk::PointSetToPointSetMetricv4< TPointSet, TPointSet >.
Definition at line 94 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
typedef Superclass::MovingTransformJacobianType itk::JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4< TPointSet >::MovingTransformJacobianType |
Reimplemented from itk::PointSetToPointSetMetricv4< TPointSet, TPointSet >.
Definition at line 106 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
typedef Superclass::NeighborsIdentifierType itk::JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4< TPointSet >::NeighborsIdentifierType |
Reimplemented from itk::PointSetToPointSetMetricv4< TPointSet, TPointSet >.
Definition at line 101 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
typedef Superclass::NumberOfParametersType itk::JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4< TPointSet >::NumberOfParametersType |
Type to represent the number of parameters that are being optimized at any given iteration of the optimizer.
Reimplemented from itk::PointSetToPointSetMetricv4< TPointSet, TPointSet >.
Definition at line 102 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
typedef SmartPointer<Self> itk::JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4< TPointSet >::Pointer |
Reimplemented from itk::PointSetToPointSetMetricv4< TPointSet, TPointSet >.
Definition at line 78 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
typedef Superclass::PointIdentifier itk::JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4< TPointSet >::PointIdentifier |
Reimplemented from itk::PointSetToPointSetMetricv4< TPointSet, TPointSet >.
Definition at line 100 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
typedef PointSetType::PointsContainer itk::JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4< TPointSet >::PointsContainer |
Reimplemented from itk::PointSetToPointSetMetricv4< TPointSet, TPointSet >.
Definition at line 88 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
typedef PointsContainer::ConstIterator itk::JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4< TPointSet >::PointsContainerConstIterator |
Definition at line 89 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
typedef TPointSet itk::JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4< TPointSet >::PointSetType |
Definition at line 85 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
typedef Superclass::PointType itk::JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4< TPointSet >::PointType |
Reimplemented from itk::PointSetToPointSetMetricv4< TPointSet, TPointSet >.
Definition at line 98 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
typedef MeasureType itk::JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4< TPointSet >::RealType |
Definition at line 108 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
typedef JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4 itk::JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4< TPointSet >::Self |
Standard class typedefs.
Reimplemented from itk::PointSetToPointSetMetricv4< TPointSet, TPointSet >.
Definition at line 76 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
typedef PointSetToPointSetMetricv4<TPointSet, TPointSet> itk::JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4< TPointSet >::Superclass |
Reimplemented from itk::PointSetToPointSetMetricv4< TPointSet, TPointSet >.
Definition at line 77 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
|
protected |
|
protected |
|
private |
|
protected |
|
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 |
Get the alpha parameter used to tune the point-set metric.
|
virtual |
Get the size of the covariance neighborhood used to construct the anisotropic covariances. Only relevant if m_UseAnisotropicCovariances = true. Default = 5.
|
virtual |
Get the neighborhood size used to evaluate the measurement at each point. Default = 50.
|
virtual |
Get the noise kernel sigma for the anistropic covariances.
|
virtual |
|
virtual |
|
virtual |
Run-time type information (and related methods)
Reimplemented from itk::PointSetToPointSetMetricv4< TPointSet, TPointSet >.
|
virtual |
Get the point set sigma function
|
virtual |
Get whether or not anisotropic covariances are determined for each Gaussian. Default = false.
|
virtual |
Initialize the Metric by making sure that all the components are present and plugged together correctly
Reimplemented from itk::PointSetToPointSetMetricv4< TPointSet, TPointSet >.
|
protectedvirtual |
Initialize to prepare for a particular iteration, generally an iteration of optimization. Distinct from Initialize() which is a one-time initialization.
Reimplemented from itk::PointSetToPointSetMetricv4< TPointSet, TPointSet >.
|
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::PointSetToPointSetMetricv4< TPointSet, TPointSet >.
|
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::PointSetToPointSetMetricv4< TPointSet, TPointSet >.
|
virtual |
Set the alpha parameter used to tune the point-set metric from a maximum-likelihood measure (alpha = 1) to the more robust L2 solution (alpha = 2). Typically, "robustness" is associated with performance in the presence of uniform noise but in most applications the noise will be highly correlated with the point sets, therefore an alpha value close to 1, in general, provides better performance. Only values between 1 and 2 are convex.
|
virtual |
Set the size of the covariance neighborhood used to construct the anisotropic covariances. Only relevant if m_UseAnisotropicCovariances = true. Default = 5.
|
virtual |
Set the neighborhood size used to evaluate the measurement at each point. Default = 50.
|
virtual |
Set the size of the noise kernel used to construct each covariance image. To avoid the case where the local point set structure would result in a degenerate covariance matrix, a small amount of noise is added along the diagonal represented by this variable. Only relevant if m_UseAnisotropicCovariances = true. Default = 10.0.
|
virtual |
Each point is associated with a Gaussian characterized by m_PointSetSigma which provides a sense of scale for determining the similarity between two point sets. Default = 1.0.
|
virtual |
Set whether or not anisotropic covariances are determined for each Gaussian. Default = false.
|
virtual |
|
virtual |
Get/set whether or not anisotropic covariances are determined for each Gaussian. Default = false.
|
private |
Definition at line 233 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
|
private |
Definition at line 230 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
|
private |
Definition at line 231 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
|
private |
Definition at line 224 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
|
private |
Definition at line 229 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
|
private |
Definition at line 223 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
|
private |
Definition at line 228 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
|
mutableprivate |
Definition at line 237 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
|
mutableprivate |
Definition at line 238 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
|
mutableprivate |
Precomputed cached values
Definition at line 236 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
|
private |
Definition at line 226 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.
|
static |
typedefs for the data types used in the point set metric calculations. It is assumed that the constants of the fixed point set, such as the point dimension, are the same for the "common space" in which the metric calculation occurs.
Reimplemented from itk::PointSetToPointSetMetricv4< TPointSet, TPointSet >.
Definition at line 91 of file itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.h.