Medical Imaging Interaction Toolkit  2023.12.99-ed252ae7
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 (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #ifndef mitkCovarianceMatrixCalculator_h
14 #define mitkCovarianceMatrixCalculator_h
15 
16 // exports
18 
19 #include <mitkCommon.h>
20 
21 #include <itkMatrix.h>
22 #include <itkObjectFactory.h>
23 #include <vector>
24 
25 namespace mitk
26 {
27  // forward declarations
28  class Surface;
29  struct CovarianceMatrixCalculatorData;
30 
47  {
48  private:
50  CovarianceMatrixCalculatorData *d;
51 
52  protected:
53  // local typedefs
54 
56  typedef itk::Matrix<double, 3, 3> CovarianceMatrix;
58  typedef std::vector<CovarianceMatrix> CovarianceMatrixList;
59  typedef double Vertex[3];
60 
63 
76  void ComputeOrthonormalCoordinateSystem(
77  const int index, Vertex normal, CovarianceMatrix &principalComponents, Vertex variances, Vertex curVertex);
79  ~CovarianceMatrixCalculator() override;
80 
81  public:
83  itkFactorylessNewMacro(Self);
84  itkCloneMacro(Self);
85 
89  void SetVoronoiScalingFator(const double factor);
90 
94  void EnableNormalization(bool state);
95 
99  double GetMeanVariance() const;
100 
104  const CovarianceMatrixList &GetCovarianceMatrices() const;
105 
109  void SetInputSurface(Surface *input);
110 
114  void ComputeCovarianceMatrices();
115  };
116 }
117 
118 #endif
MitkAlgorithmsExtExports.h
MITKALGORITHMSEXT_EXPORT
#define MITKALGORITHMSEXT_EXPORT
Definition: MitkAlgorithmsExtExports.h:15
mitk::Surface
Class for storing surfaces (vtkPolyData).
Definition: mitkSurface.h:28
mitkClassMacroItkParent
#define mitkClassMacroItkParent(className, SuperClassName)
Definition: mitkCommon.h:45
mitk
Find image slices visible on a given plane.
Definition: RenderingTests.dox:1
mitk::CovarianceMatrixCalculator::CovarianceMatrixList
std::vector< CovarianceMatrix > CovarianceMatrixList
Definition: mitkCovarianceMatrixCalculator.h:58
mitkCommon.h
mitk::CovarianceMatrixCalculator::CovarianceMatrix
itk::Matrix< double, 3, 3 > CovarianceMatrix
Definition: mitkCovarianceMatrixCalculator.h:56
mitk::CovarianceMatrixCalculator::m_CovarianceMatrixList
CovarianceMatrixList m_CovarianceMatrixList
Definition: mitkCovarianceMatrixCalculator.h:62
mitk::CovarianceMatrixCalculator
Class that computes the covariance matrices for every point in a Surface used in the A-ICP algorithm.
Definition: mitkCovarianceMatrixCalculator.h:46