17 #ifndef __WEIGHTEDPOINTTRANSFORM_H__
18 #define __WEIGHTEDPOINTTRANSFORM_H__
24 #include <itkMatrix.h>
25 #include <itkVariableSizeMatrix.h>
29 #include <vtkSmartPointer.h>
33 class vtkLandmarkTransform;
59 typedef itk::Matrix<double, 3, 3>
Matrix3x3;
61 typedef Matrix3x3 WeightMatrix;
63 typedef Matrix3x3 Rotation;
65 typedef itk::Vector<double, 3> Translation;
67 typedef std::vector<WeightMatrix> WeightMatrixList;
69 typedef std::vector<Matrix3x3> CovarianceMatrixList;
73 itkFactorylessNewMacro(Self);
77 void ComputeTransformation();
80 itkSetMacro(Threshold,
double)
85 itkSetMacro(MaxIterations,
double)
91 itkGetMacro(Iterations,
int);
96 itkGetMacro(FRE,
double);
99 itkSetMacro(FRENormalizationFactor,
double);
102 itkGetMacro(FRENormalizationFactor,
double);
107 void SetMovingPointSet(vtkSmartPointer<vtkPoints> p);
113 void SetCovarianceMatricesMoving(
const CovarianceMatrixList &matrices);
118 void SetFixedPointSet(vtkSmartPointer<vtkPoints> p);
124 void SetCovarianceMatricesFixed(
const CovarianceMatrixList &matrices);
189 void C_maker(vtkPoints *X,
const WeightMatrixList &W, itk::VariableSizeMatrix<double> &returnValue);
205 void E_maker(vtkPoints *X, vtkPoints *Y,
const WeightMatrixList &W, vnl_vector<double> &returnValue);
218 double CalculateConfigChange(vtkPoints *X, vtkPoints *X_new);
240 void WeightedPointRegister(vtkPoints *X,
242 const CovarianceMatrixList &Sigma_X,
243 const CovarianceMatrixList &Sigma_Y,
246 Rotation &TransformationR,
247 Translation &TransformationT,
DataCollection - Class to facilitate loading/accessing structured data.
#define MITKALGORITHMSEXT_EXPORT
#define mitkClassMacroItkParent(className, SuperClassName)