Medical Imaging Interaction Toolkit
2016.11.0
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) static Pointer New() | |
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 () |
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 () | |
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 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.
|
protected |
Definition of the covariance matrix.
Definition at line 60 of file mitkCovarianceMatrixCalculator.h.
|
protected |
Definition of a list of covariance matrices
Definition at line 62 of file mitkCovarianceMatrixCalculator.h.
|
protected |
Definition at line 63 of file mitkCovarianceMatrixCalculator.h.
|
protected |
Definition at line 71 of file mitkCovarianceMatrixCalculator.cpp.
|
protected |
Definition at line 75 of file mitkCovarianceMatrixCalculator.cpp.
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. |
Definition at line 106 of file mitkCovarianceMatrixCalculator.cpp.
References ComputeCovarianceMatrix(), and mitkThrow.
|
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.
The | index of the input Vertex in the Surface. |
The | normal of the input Vertex. |
Output | CovarianceMatrix 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.
state | Enables 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.
Definition at line 95 of file mitkCovarianceMatrixCalculator.cpp.
double mitk::CovarianceMatrixCalculator::GetMeanVariance | ( | ) | const |
Returns the mean of variance of all computed covariance matrices.
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.
input | A Surface. |
Definition at line 101 of file mitkCovarianceMatrixCalculator.cpp.
void mitk::CovarianceMatrixCalculator::SetVoronoiScalingFator | ( | const double | factor | ) |
Sets the scaling factor for the voronoi area.
factor | The scaling factor. |
Definition at line 80 of file mitkCovarianceMatrixCalculator.cpp.
|
protected |
List that stores the computed covariance matrices.
Definition at line 66 of file mitkCovarianceMatrixCalculator.h.