v2.0.0
Loading...
Searching...
No Matches
mne_icp.h
Go to the documentation of this file.
1//=============================================================================================================
22
23#ifndef MNE_ICP_H
24#define MNE_ICP_H
25
26//=============================================================================================================
27// INCLUDES
28//=============================================================================================================
29
30#include "mne_global.h"
31
32//=============================================================================================================
33// QT INCLUDES
34//=============================================================================================================
35
36#include <QSharedPointer>
37
38//=============================================================================================================
39// EIGEN INCLUDES
40//=============================================================================================================
41
42#include <Eigen/Core>
43
44//=============================================================================================================
45// FORWARD DECLARATIONS
46//=============================================================================================================
47
48namespace FIFFLIB
49{
50class FiffCoordTrans;
51}
52
53//=============================================================================================================
54// DEFINE NAMESPACE MNELIB
55//=============================================================================================================
56
57namespace MNELIB
58{
59
60//=============================================================================================================
61// MNELIB FORWARD DECLARATIONS
62//=============================================================================================================
63
65
66const Eigen::VectorXf vecDefaultWeights;
67
68//=========================================================================================================
83
84MNESHARED_EXPORT bool performIcp(const QSharedPointer<MNELIB::MNEProjectToSurface> mneSurfacePoints,
85 const Eigen::MatrixXf& matPointCloud,
86 FIFFLIB::FiffCoordTrans& transFromTo,
87 float& fRMSE,
88 bool bScale = false,
89 int iMaxIter = 20,
90 float fTol = 0.001,
91 const Eigen::VectorXf& vecWeights = vecDefaultWeights);
92
93//=========================================================================================================
94
107
108MNESHARED_EXPORT bool fitMatchedPoints(const Eigen::MatrixXf& matSrcPoint,
109 const Eigen::MatrixXf& matDstPoint,
110 Eigen::Matrix4f& matTrans,
111 float fScale = 1.0,
112 bool bScale = false,
113 const Eigen::VectorXf& vecWeights = vecDefaultWeights);
114
115//=========================================================================================================
116
129
130MNESHARED_EXPORT bool discard3DPointOutliers(const QSharedPointer<MNELIB::MNEProjectToSurface> mneSurfacePoints,
131 const Eigen::MatrixXf& matPointCloud,
132 const FIFFLIB::FiffCoordTrans& transFromTo,
133 Eigen::VectorXi& vecTake,
134 Eigen::MatrixXf& matTakePoint,
135 float fMaxDist = 0.0);
136
137} // namespace MNELIB
138
139#endif // MNE_ICP_H
MNELIB shared-library export/import macros and library build metadata.
#define MNESHARED_EXPORT
Definition mne_global.h:40
Core MNE data structures (source spaces, source estimates, hemispheres).
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 &vecWeights=vecDefaultWeights)
bool fitMatchedPoints(const Eigen::MatrixXf &matSrcPoint, const Eigen::MatrixXf &matDstPoint, Eigen::Matrix4f &matTrans, float fScale=1.0, bool bScale=false, const Eigen::VectorXf &vecWeights=vecDefaultWeights)
const Eigen::VectorXf vecDefaultWeights
Definition mne_icp.h:66
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)
FIFF file I/O, in-memory data structures and high-level readers/writers.
Labelled 4x4 FIFF affine: source frame, destination frame, rotation, translation and cached inverse.
Projects 3-D points onto a triangulated surface mesh and returns nearest vertices and distances.