Computes covariance matrices for every vertex of a Surface, for use in the anisotropic ICP (A-ICP) algorithm.
More...
#include <mitkCovarianceMatrixCalculator.h>
Computes covariance matrices for every vertex of a Surface, for use in the anisotropic ICP (A-ICP) algorithm.
This class computes a 3x3 covariance matrix for each vertex in a given Surface based on its direct neighbours and stores them in a CovarianceMatrixList. The implementation follows 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 requires a clean Surface without non-manifold edges and without duplicated vertices. Use vtkCleanPolyData to ensure a correct Surface representation.
- See also
- AnisotropicIterativeClosestPointRegistration
-
AnisotropicRegistrationCommon
-
WeightedPointTransform
Definition at line 48 of file mitkCovarianceMatrixCalculator.h.
◆ CovarianceMatrix
◆ CovarianceMatrixList
◆ Vertex
| typedef double mitk::CovarianceMatrixCalculator::Vertex[3] |
|
protected |
◆ CovarianceMatrixCalculator()
| mitk::CovarianceMatrixCalculator::CovarianceMatrixCalculator |
( |
| ) |
|
|
protected |
◆ ~CovarianceMatrixCalculator()
| mitk::CovarianceMatrixCalculator::~CovarianceMatrixCalculator |
( |
| ) |
|
|
overrideprotected |
◆ Clone()
| Pointer mitk::CovarianceMatrixCalculator::Clone |
( |
| ) |
const |
◆ ComputeCovarianceMatrices()
| void mitk::CovarianceMatrixCalculator::ComputeCovarianceMatrices |
( |
| ) |
|
Method that computes the covariance matrices for the input surface.
- Exceptions
-
| std::exception | If 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
-
| 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 |
◆ EnableNormalization()
| void mitk::CovarianceMatrixCalculator::EnableNormalization |
( |
bool |
state | ) |
|
Enables/disables the covariance matrix normalization.
- Parameters
-
| state | Enables the covariance matrix normalization. |
◆ GetCovarianceMatrices()
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()
◆ 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
-
◆ SetVoronoiScalingFator()
| void mitk::CovarianceMatrixCalculator::SetVoronoiScalingFator |
( |
const double |
factor | ) |
|
Sets the scaling factor for the voronoi area.
- Parameters
-
| factor | The scaling factor. |
◆ m_CovarianceMatrixList
The documentation for this class was generated from the following file: