v2.0.0
Loading...
Searching...
No Matches
interpolation.h
Go to the documentation of this file.
1//=============================================================================================================
26
27#ifndef INTERPOLATION_H
28#define INTERPOLATION_H
29
30//=============================================================================================================
31// STL INCLUDES
32//=============================================================================================================
33
34#include "../disp3D_global.h"
35
36#include <limits>
37
38//=============================================================================================================
39// QT INCLUDES
40//=============================================================================================================
41
42#include <QSharedPointer>
43#include <QVector>
44
45//=============================================================================================================
46// EIGEN INCLUDES
47//=============================================================================================================
48
49#include <Eigen/Core>
50#include <Eigen/Sparse>
51
52//=============================================================================================================
53// DEFINE NAMESPACE
54//=============================================================================================================
55
56namespace DISP3DLIB
57{
58
59#ifndef FLOAT_INFINITY
60#define FLOAT_INFINITY std::numeric_limits<float>::infinity()
61#endif
62
63//=============================================================================================================
71
73{
74public:
75 typedef QSharedPointer<Interpolation> SPtr;
76 typedef QSharedPointer<const Interpolation> ConstSPtr;
77
78 Interpolation() = delete;
79
80 //=========================================================================================================
91 static QSharedPointer<Eigen::SparseMatrix<float>> createInterpolationMat(const Eigen::VectorXi& vecProjectedSensors,
92 const QSharedPointer<Eigen::MatrixXd> matDistanceTable,
93 double (*interpolationFunction)(double),
94 const double dCancelDist = FLOAT_INFINITY,
95 const Eigen::VectorXi& vecExcludeIndex = Eigen::VectorXi());
96
97 //=========================================================================================================
105 static Eigen::VectorXf interpolateSignal(const QSharedPointer<Eigen::SparseMatrix<float>> matInterpolationMatrix,
106 const QSharedPointer<Eigen::VectorXf>& vecMeasurementData);
107
108 //=========================================================================================================
116 static Eigen::VectorXf interpolateSignal(const Eigen::SparseMatrix<float>& matInterpolationMatrix,
117 const Eigen::VectorXf& vecMeasurementData);
118
119 //=========================================================================================================
126 static double linear(const double dIn);
127
128 //=========================================================================================================
135 static double gaussian(const double dIn);
136
137 //=========================================================================================================
144 static double square(const double dIn);
145
146 //=========================================================================================================
153 static double cubic(const double dIn);
154};
155
156} // namespace DISP3DLIB
157
158#endif // INTERPOLATION_H
Library export/import macros and namespace marker for the disp3D library.
#define DISP3DSHARED_EXPORT
#define FLOAT_INFINITY
3-D brain visualisation using the Qt RHI rendering backend.
QSharedPointer< const Interpolation > ConstSPtr
static Eigen::VectorXf interpolateSignal(const Eigen::SparseMatrix< float > &matInterpolationMatrix, const Eigen::VectorXf &vecMeasurementData)
interpolateSignal Interpolates sensor data using the weight matrix (reference version).
static double gaussian(const double dIn)
gaussian Gaussian interpolation function (sigma=1).
static Eigen::VectorXf interpolateSignal(const QSharedPointer< Eigen::SparseMatrix< float > > matInterpolationMatrix, const QSharedPointer< Eigen::VectorXf > &vecMeasurementData)
interpolateSignal Interpolates sensor data using the weight matrix (shared pointer version).
static double linear(const double dIn)
linear Identity interpolation function.
static double cubic(const double dIn)
cubic Cubic hyperbola interpolation function.
static QSharedPointer< Eigen::SparseMatrix< float > > createInterpolationMat(const Eigen::VectorXi &vecProjectedSensors, const QSharedPointer< Eigen::MatrixXd > matDistanceTable, double(*interpolationFunction)(double), const double dCancelDist=FLOAT_INFINITY, const Eigen::VectorXi &vecExcludeIndex=Eigen::VectorXi())
createInterpolationMat Calculates the weight matrix for interpolation.
QSharedPointer< Interpolation > SPtr
static double square(const double dIn)
square Negative parabola interpolation function with y-offset of 1.