15 #ifndef niftkPointRegMaths_h
16 #define niftkPointRegMaths_h
18 #include "niftkPointRegExports.h"
20 #include <mitkPointSet.h>
21 #include <vtkMatrix4x4.h>
35 extern "C++" NIFTKPOINTREG_EXPORT
37 const std::vector<cv::Point3d>&
q,
38 const std::vector<cv::Point3d>& qPrime);
45 extern "C++" NIFTKPOINTREG_EXPORT
47 const std::vector<cv::Point3d>& fixedPoints,
48 const std::vector<cv::Point3d>& movingPoints,
52 cv::Matx44d& outputMatrix);
59 extern "C++" NIFTKPOINTREG_EXPORT
61 const std::vector<cv::Point3d>& fixedPoints,
62 const std::vector<cv::Point3d>& movingPoints,
63 const cv::Matx44d&
matrix);
70 extern "C++" NIFTKPOINTREG_EXPORT
72 const mitk::PointSet::Pointer& fixedPointSet,
73 const mitk::PointSet::Pointer& movingPointSet,
74 vtkMatrix4x4& vtkMatrix);
double DoSVDPointBasedRegistration(const std::vector< cv::Point3d > &fixedPoints, const std::vector< cv::Point3d > &movingPoints, cv::Matx33d &H, cv::Point3d &p, cv::Point3d &pPrime, cv::Matx44d &outputMatrix)
Does the main SVD bit of the point based registration, and handles the degenerate conditions mentione...
Definition: niftkPointRegMaths.cxx:45
GLdouble GLdouble GLdouble GLdouble q
Definition: glew.h:1398
GLfloat GLfloat p
Definition: glew.h:14169
GLuint GLenum matrix
Definition: glew.h:12775
double CalculateFiducialRegistrationError(const std::vector< cv::Point3d > &fixedPoints, const std::vector< cv::Point3d > &movingPoints, const cv::Matx44d &matrix)
Calculates Fiducial Registration Error by multiplying the movingPoints by the matrix, and comparing with fixedPoints.
Definition: niftkPointRegMaths.cxx:128
cv::Matx33d CalculateCrossCovarianceH(const std::vector< cv::Point3d > &q, const std::vector< cv::Point3d > &qPrime)
Calculates 1/N Sum (q_i * qPrime_i^t) where q_i and qPrime_i are column vectors, so the product is a ...
Definition: niftkPointRegMaths.cxx:23
Definition: niftkExceptionObject.h:21