Medical Imaging Interaction Toolkit  2016.11.0
Medical Imaging Interaction Toolkit
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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