Medical Imaging Interaction Toolkit  2022.04.99-b2814023
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)
Pointer Clone () const
void SetVoronoiScalingFator (const double factor)
void EnableNormalization (bool state)
double GetMeanVariance () const
const CovarianceMatrixListGetCovarianceMatrices () const
void SetInputSurface (Surface *input)
void ComputeCovarianceMatrices ()

Static Public Member Functions

static Pointer New ()

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 () override

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 46 of file mitkCovarianceMatrixCalculator.h.

Member Typedef Documentation

◆ CovarianceMatrix

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

Definition of the covariance matrix.

Definition at line 56 of file mitkCovarianceMatrixCalculator.h.

◆ CovarianceMatrixList

Definition of a list of covariance matrices

Definition at line 58 of file mitkCovarianceMatrixCalculator.h.

◆ Vertex

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

Definition at line 59 of file mitkCovarianceMatrixCalculator.h.

Constructor & Destructor Documentation

◆ CovarianceMatrixCalculator()

mitk::CovarianceMatrixCalculator::CovarianceMatrixCalculator ( )

◆ ~CovarianceMatrixCalculator()

mitk::CovarianceMatrixCalculator::~CovarianceMatrixCalculator ( )

Member Function Documentation

◆ Clone()

Pointer mitk::CovarianceMatrixCalculator::Clone ( ) const

◆ ComputeCovarianceMatrices()

void mitk::CovarianceMatrixCalculator::ComputeCovarianceMatrices ( )

Method that computes the covariance matrices for the input surface.

std::exceptionIf the input surface is not set.

◆ ComputeOrthonormalCoordinateSystem()

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

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.

indexThe index of the input Vertex in the Surface.
normalThe normal of the input Vertex.
principalComponentsCovarianceMatrix of the principal component analysis.
variancesVariances along the axes of the createt Orthonormal system.
curVertexThe current Vertex in the surface

◆ EnableNormalization()

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

Enables/disables the covariance matrix normalization.

stateEnables the covariance matrix normalization.

◆ GetCovarianceMatrices()

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

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

A CovarianceMatrixList.

◆ GetMeanVariance()

double mitk::CovarianceMatrixCalculator::GetMeanVariance ( ) const

Returns the mean of variance of all computed covariance matrices.

The mean variance.

◆ mitkClassMacroItkParent()

mitk::CovarianceMatrixCalculator::mitkClassMacroItkParent ( CovarianceMatrixCalculator  ,

◆ New()

static Pointer mitk::CovarianceMatrixCalculator::New ( )

◆ SetInputSurface()

void mitk::CovarianceMatrixCalculator::SetInputSurface ( Surface input)

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

inputA Surface.

◆ SetVoronoiScalingFator()

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

Sets the scaling factor for the voronoi area.

factorThe scaling factor.

Member Data Documentation

◆ m_CovarianceMatrixList

CovarianceMatrixList mitk::CovarianceMatrixCalculator::m_CovarianceMatrixList

List that stores the computed covariance matrices.

Definition at line 62 of file mitkCovarianceMatrixCalculator.h.

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