Medical Imaging Interaction Toolkit  2016.11.0
Medical Imaging Interaction Toolkit
mitk::CovarianceMatrixCalculator Class Reference

Class that computes the covariance matrices for every point in a Surface used in the A-ICP algorithm. More...

#include <mitkCovarianceMatrixCalculator.h>

Inheritance diagram for mitk::CovarianceMatrixCalculator:
Collaboration diagram for mitk::CovarianceMatrixCalculator:

Public Member Functions

 mitkClassMacroItkParent (CovarianceMatrixCalculator, itk::Object) static Pointer New()
 
Pointer Clone () const
 
void SetVoronoiScalingFator (const double factor)
 
void EnableNormalization (bool state)
 
double GetMeanVariance () const
 
const CovarianceMatrixListGetCovarianceMatrices () const
 
void SetInputSurface (Surface *input)
 
void ComputeCovarianceMatrices ()
 

Protected Types

typedef itk::Matrix< double, 3, 3 > CovarianceMatrix
 
typedef std::vector< CovarianceMatrixCovarianceMatrixList
 
typedef double Vertex[3]
 

Protected Member Functions

void ComputeOrthonormalCoordinateSystem (const int index, Vertex normal, CovarianceMatrix &principalComponents, Vertex variances, Vertex curVertex)
 
 CovarianceMatrixCalculator ()
 
 ~CovarianceMatrixCalculator ()
 

Protected Attributes

CovarianceMatrixList m_CovarianceMatrixList
 

Detailed Description

Class that computes the covariance matrices for every point in a Surface used in the A-ICP algorithm.

Computes a covariance matrix for every vertex in a given Surface based on it's direct neighbours and saves them into a CovarianceMatrixList. The Class implements the CM_PCA method presented by L. Maier-Hein et al. in "Convergent Iterative Closest-Point Algorithm to Accomodate Anisotropic and Inhomogenous Localization Error.", IEEE T Pattern Anal 34 (8), 1520-1532, 2012. The algorithm needs a clean Surface with non manifold edges and no duplicated vertices. To ensure a clean Surface representation use vtkCleanPolyData.

Definition at line 50 of file mitkCovarianceMatrixCalculator.h.

Member Typedef Documentation

typedef itk::Matrix<double, 3, 3> mitk::CovarianceMatrixCalculator::CovarianceMatrix
protected

Definition of the covariance matrix.

Definition at line 60 of file mitkCovarianceMatrixCalculator.h.

Definition of a list of covariance matrices

Definition at line 62 of file mitkCovarianceMatrixCalculator.h.

typedef double mitk::CovarianceMatrixCalculator::Vertex[3]
protected

Definition at line 63 of file mitkCovarianceMatrixCalculator.h.

Constructor & Destructor Documentation

mitk::CovarianceMatrixCalculator::CovarianceMatrixCalculator ( )
protected

Definition at line 71 of file mitkCovarianceMatrixCalculator.cpp.

mitk::CovarianceMatrixCalculator::~CovarianceMatrixCalculator ( )
protected

Definition at line 75 of file mitkCovarianceMatrixCalculator.cpp.

Member Function Documentation

Pointer mitk::CovarianceMatrixCalculator::Clone ( ) const
void mitk::CovarianceMatrixCalculator::ComputeCovarianceMatrices ( )

Method that computes the covariance matrices for the input surface.

Exceptions
std::exceptionIf the input surface is not set.

Definition at line 106 of file mitkCovarianceMatrixCalculator.cpp.

References ComputeCovarianceMatrix(), and mitkThrow.

void mitk::CovarianceMatrixCalculator::ComputeOrthonormalCoordinateSystem ( const int  index,
Vertex  normal,
CovarianceMatrix principalComponents,
Vertex  variances,
Vertex  curVertex 
)
protected

This method projects all surrounding vertices of given vertex in a Surface in the normal direction onto a plane and computes a primary component analysis on the projected vertices. In the next step a orthonormal system is created.

Parameters
Theindex of the input Vertex in the Surface.
Thenormal of the input Vertex.
OutputCovarianceMatrix of the principal component analysis.
Output.Variances along the axes of the createt Orthonormal system.
Output.The current Vertex in the surface

Definition at line 279 of file mitkCovarianceMatrixCalculator.cpp.

References CalculatePCAonPointNeighboursForNormalVector().

void mitk::CovarianceMatrixCalculator::EnableNormalization ( bool  state)

Enables/disables the covariance matrix normalization.

Parameters
stateEnables the covariance matrix normalization.

Definition at line 85 of file mitkCovarianceMatrixCalculator.cpp.

const mitk::CovarianceMatrixCalculator::CovarianceMatrixList & mitk::CovarianceMatrixCalculator::GetCovarianceMatrices ( ) const

Returns a reference to the CovarianceMatrixList with the computed covariance matrices.

Returns
A CovarianceMatrixList.

Definition at line 95 of file mitkCovarianceMatrixCalculator.cpp.

double mitk::CovarianceMatrixCalculator::GetMeanVariance ( ) const

Returns the mean of variance of all computed covariance matrices.

Returns
The mean variance.

Definition at line 90 of file mitkCovarianceMatrixCalculator.cpp.

mitk::CovarianceMatrixCalculator::mitkClassMacroItkParent ( CovarianceMatrixCalculator  ,
itk::Object   
)
void mitk::CovarianceMatrixCalculator::SetInputSurface ( Surface input)

Sets the input Surface for which the covariance matrices will be calculated.

Parameters
inputA Surface.

Definition at line 101 of file mitkCovarianceMatrixCalculator.cpp.

void mitk::CovarianceMatrixCalculator::SetVoronoiScalingFator ( const double  factor)

Sets the scaling factor for the voronoi area.

Parameters
factorThe scaling factor.

Definition at line 80 of file mitkCovarianceMatrixCalculator.cpp.

Member Data Documentation

CovarianceMatrixList mitk::CovarianceMatrixCalculator::m_CovarianceMatrixList
protected

List that stores the computed covariance matrices.

Definition at line 66 of file mitkCovarianceMatrixCalculator.h.


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