Medical Imaging Interaction Toolkit
2024.06.00
Medical Imaging Interaction Toolkit
|
Class that computes the covariance matrices for every point in a Surface used in the A-ICP algorithm. More...
#include <mitkCovarianceMatrixCalculator.h>
Public Member Functions | |
mitkClassMacroItkParent (CovarianceMatrixCalculator, itk::Object) | |
Pointer | Clone () const |
void | SetVoronoiScalingFator (const double factor) |
void | EnableNormalization (bool state) |
double | GetMeanVariance () const |
const CovarianceMatrixList & | GetCovarianceMatrices () 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< CovarianceMatrix > | CovarianceMatrixList |
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 |
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.
|
protected |
Definition of the covariance matrix.
Definition at line 56 of file mitkCovarianceMatrixCalculator.h.
|
protected |
Definition of a list of covariance matrices
Definition at line 58 of file mitkCovarianceMatrixCalculator.h.
|
protected |
Definition at line 59 of file mitkCovarianceMatrixCalculator.h.
|
protected |
|
overrideprotected |
Pointer mitk::CovarianceMatrixCalculator::Clone | ( | ) | const |
void mitk::CovarianceMatrixCalculator::ComputeCovarianceMatrices | ( | ) |
Method that computes the covariance matrices for the input surface.
std::exception | If the input surface is not set. |
|
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.
index | The index of the input Vertex in the Surface. |
normal | The normal of the input Vertex. |
principalComponents | CovarianceMatrix of the principal component analysis. |
variances | Variances along the axes of the createt Orthonormal system. |
curVertex | The current Vertex in the surface |
void mitk::CovarianceMatrixCalculator::EnableNormalization | ( | bool | state | ) |
Enables/disables the covariance matrix normalization.
state | Enables the covariance matrix normalization. |
const CovarianceMatrixList& mitk::CovarianceMatrixCalculator::GetCovarianceMatrices | ( | ) | const |
Returns a reference to the CovarianceMatrixList with the computed covariance matrices.
double mitk::CovarianceMatrixCalculator::GetMeanVariance | ( | ) | const |
Returns the mean of variance of all computed covariance matrices.
mitk::CovarianceMatrixCalculator::mitkClassMacroItkParent | ( | CovarianceMatrixCalculator | , |
itk::Object | |||
) |
|
static |
void mitk::CovarianceMatrixCalculator::SetInputSurface | ( | Surface * | input | ) |
void mitk::CovarianceMatrixCalculator::SetVoronoiScalingFator | ( | const double | factor | ) |
Sets the scaling factor for the voronoi area.
factor | The scaling factor. |
|
protected |
List that stores the computed covariance matrices.
Definition at line 62 of file mitkCovarianceMatrixCalculator.h.