Medical Imaging Interaction Toolkit  2024.06.00
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 Accommodate 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
protected

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]
protected

Definition at line 59 of file mitkCovarianceMatrixCalculator.h.

Constructor & Destructor Documentation

◆ CovarianceMatrixCalculator()

mitk::CovarianceMatrixCalculator::CovarianceMatrixCalculator ( )
protected

◆ ~CovarianceMatrixCalculator()

mitk::CovarianceMatrixCalculator::~CovarianceMatrixCalculator ( )
overrideprotected

Member Function Documentation

◆ Clone()

Pointer mitk::CovarianceMatrixCalculator::Clone ( ) const

◆ ComputeCovarianceMatrices()

void mitk::CovarianceMatrixCalculator::ComputeCovarianceMatrices ( )

Method that computes the covariance matrices for the input surface.

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

◆ ComputeOrthonormalCoordinateSystem()

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
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.

Parameters
stateEnables the covariance matrix normalization.

◆ GetCovarianceMatrices()

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

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

Returns
A CovarianceMatrixList.

◆ GetMeanVariance()

double mitk::CovarianceMatrixCalculator::GetMeanVariance ( ) const

Returns the mean of variance of all computed covariance matrices.

Returns
The mean variance.

◆ mitkClassMacroItkParent()

mitk::CovarianceMatrixCalculator::mitkClassMacroItkParent ( CovarianceMatrixCalculator  ,
itk::Object   
)

◆ New()

static Pointer mitk::CovarianceMatrixCalculator::New ( )
static

◆ SetInputSurface()

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

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

Parameters
inputA Surface.

◆ SetVoronoiScalingFator()

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

Sets the scaling factor for the voronoi area.

Parameters
factorThe scaling factor.

Member Data Documentation

◆ m_CovarianceMatrixList

CovarianceMatrixList mitk::CovarianceMatrixCalculator::m_CovarianceMatrixList
protected

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: