Medical Imaging Interaction Toolkit  2025.12.02
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 
77  const int index, Vertex normal, CovarianceMatrix &principalComponents, Vertex variances, Vertex curVertex);
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 
105 
109  void SetInputSurface(Surface *input);
110 
115  };
116 }
117 
118 #endif
#define MITKALGORITHMSEXT_EXPORT
Class that computes the covariance matrices for every point in a Surface used in the A-ICP algorithm.
const CovarianceMatrixList & GetCovarianceMatrices() const
void SetInputSurface(Surface *input)
void EnableNormalization(bool state)
mitkClassMacroItkParent(CovarianceMatrixCalculator, itk::Object)
void SetVoronoiScalingFator(const double factor)
void ComputeOrthonormalCoordinateSystem(const int index, Vertex normal, CovarianceMatrix &principalComponents, Vertex variances, Vertex curVertex)
std::vector< CovarianceMatrix > CovarianceMatrixList
Class for storing surfaces (vtkPolyData).
Definition: mitkSurface.h:29
Find image slices visible on a given plane.