Medical Imaging Interaction Toolkit  2016.11.0
Medical Imaging Interaction Toolkit
mitkCovarianceMatrixCalculator.h
Go to the documentation of this file.
1 /*===================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center,
6 Division of Medical and Biological Informatics.
7 All rights reserved.
8 
9 This software is distributed WITHOUT ANY WARRANTY; without
10 even the implied warranty of MERCHANTABILITY or FITNESS FOR
11 A PARTICULAR PURPOSE.
12 
13 See LICENSE.txt or http://www.mitk.org for details.
14 
15 ===================================================================*/
16 
17 #ifndef __MITK_COVARIANCEMATRIXCALCULATOR_H__
18 #define __MITK_COVARIANCEMATRIXCALCULATOR_H__
19 
20 // exports
22 
23 #include <mitkCommon.h>
24 
25 #include <itkMatrix.h>
26 #include <itkObjectFactory.h>
27 #include <vector>
28 
29 namespace mitk
30 {
31  // forward declarations
32  class Surface;
33  struct CovarianceMatrixCalculatorData;
34 
51  {
52  private:
54  CovarianceMatrixCalculatorData *d;
55 
56  protected:
57  // local typedefs
58 
60  typedef itk::Matrix<double, 3, 3> CovarianceMatrix;
62  typedef std::vector<CovarianceMatrix> CovarianceMatrixList;
63  typedef double Vertex[3];
64 
66  CovarianceMatrixList m_CovarianceMatrixList;
67 
80  void ComputeOrthonormalCoordinateSystem(
81  const int index, Vertex normal, CovarianceMatrix &principalComponents, Vertex variances, Vertex curVertex);
84 
85  public:
86  mitkClassMacroItkParent(CovarianceMatrixCalculator, itk::Object) itkFactorylessNewMacro(Self) itkCloneMacro(Self)
87 
91  void SetVoronoiScalingFator(const double factor);
92 
96  void EnableNormalization(bool state);
97 
101  double GetMeanVariance() const;
102 
106  const CovarianceMatrixList &GetCovarianceMatrices() const;
107 
111  void SetInputSurface(Surface *input);
112 
116  void ComputeCovarianceMatrices();
117  };
118 }
119 
120 #endif
Class for storing surfaces (vtkPolyData).
Definition: mitkSurface.h:32
std::vector< CovarianceMatrix > CovarianceMatrixList
DataCollection - Class to facilitate loading/accessing structured data.
#define MITKALGORITHMSEXT_EXPORT
Class that computes the covariance matrices for every point in a Surface used in the A-ICP algorithm...
#define mitkClassMacroItkParent(className, SuperClassName)
Definition: mitkCommon.h:53