MNE-CPP 0.1.9
A Framework for Electrophysiology
Loading...
Searching...
No Matches
icp.h
Go to the documentation of this file.
1//=============================================================================================================
35#ifndef ICP_H
36#define ICP_H
37
38//=============================================================================================================
39// INCLUDES
40//=============================================================================================================
41
42#include "rtprocessing_global.h"
43
44//=============================================================================================================
45// QT INCLUDES
46//=============================================================================================================
47
48#include <QSharedPointer>
49
50//=============================================================================================================
51// EIGEN INCLUDES
52//=============================================================================================================
53
54#include <Eigen/Core>
55
56//=============================================================================================================
57// FORWARD DECLARATIONS
58//=============================================================================================================
59
60namespace FIFFLIB{
61 class FiffCoordTrans;
62}
63
64namespace MNELIB{
65 class MNEProjectToSurface;
66}
67
68//=============================================================================================================
69// DEFINE NAMESPACE RTPROCESSINGLIB
70//=============================================================================================================
71
72namespace RTPROCESSINGLIB {
73
74//=============================================================================================================
75// NAMESPACE FORWARD DECLARATIONS
76//=============================================================================================================
77
78const Eigen::VectorXf vecDefaultWeigths;
79
80//=========================================================================================================
96RTPROCESINGSHARED_EXPORT bool performIcp(const QSharedPointer<MNELIB::MNEProjectToSurface> mneSurfacePoints,
97 const Eigen::MatrixXf& matPointCloud,
98 FIFFLIB::FiffCoordTrans& transFromTo,
99 float& fRMSE,
100 bool bScale = false,
101 int iMaxIter = 20,
102 float fTol = 0.001,
103 const Eigen::VectorXf& vecWeitgths = vecDefaultWeigths);
104
105//=========================================================================================================
106
120RTPROCESINGSHARED_EXPORT bool fitMatchedPoints(const Eigen::MatrixXf& matSrcPoint,
121 const Eigen::MatrixXf& matDstPoint,
122 Eigen::Matrix4f& matTrans,
123 float fScale = 1.0,
124 bool bScale=false,
125 const Eigen::VectorXf& vecWeitgths = vecDefaultWeigths);
126
127//=========================================================================================================
128
142RTPROCESINGSHARED_EXPORT bool discard3DPointOutliers(const QSharedPointer<MNELIB::MNEProjectToSurface> mneSurfacePoints,
143 const Eigen::MatrixXf& matPointCloud,
144 const FIFFLIB::FiffCoordTrans& transFromTo,
145 Eigen::VectorXi& vecTake,
146 Eigen::MatrixXf& matTakePoint,
147 float fMaxDist = 0.0);
148
149//=============================================================================================================
150// INLINE DEFINITIONS
151//=============================================================================================================
152
153} // namespace
154
155#endif // ICP_H
realtime library export/import macros.
#define RTPROCESINGSHARED_EXPORT
RTPROCESINGSHARED_EXPORT bool fitMatchedPoints(const Eigen::MatrixXf &matSrcPoint, const Eigen::MatrixXf &matDstPoint, Eigen::Matrix4f &matTrans, float fScale=1.0, bool bScale=false, const Eigen::VectorXf &vecWeitgths=vecDefaultWeigths)
RTPROCESINGSHARED_EXPORT bool performIcp(const QSharedPointer< MNELIB::MNEProjectToSurface > mneSurfacePoints, const Eigen::MatrixXf &matPointCloud, FIFFLIB::FiffCoordTrans &transFromTo, float &fRMSE, bool bScale=false, int iMaxIter=20, float fTol=0.001, const Eigen::VectorXf &vecWeitgths=vecDefaultWeigths)
RTPROCESINGSHARED_EXPORT bool discard3DPointOutliers(const QSharedPointer< MNELIB::MNEProjectToSurface > mneSurfacePoints, const Eigen::MatrixXf &matPointCloud, const FIFFLIB::FiffCoordTrans &transFromTo, Eigen::VectorXi &vecTake, Eigen::MatrixXf &matTakePoint, float fMaxDist=0.0)
Coordinate transformation description.