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#ifndef FLOAT_INFINITY
59#define FLOAT_INFINITY std::numeric_limits<float>::infinity()
60#endif
61
62//=============================================================================================================
68
70{
71
72public:
73 typedef QSharedPointer<Interpolation> SPtr;
74 typedef QSharedPointer<const Interpolation> ConstSPtr;
75
76 Interpolation() = delete;
77
78 //=========================================================================================================
82static QSharedPointer<Eigen::SparseMatrix<float> > createInterpolationMat(const Eigen::VectorXi &vecProjectedSensors,
83 const QSharedPointer<Eigen::MatrixXd> matDistanceTable,
84 double (*interpolationFunction) (double),
85 const double dCancelDist = FLOAT_INFINITY,
86 const Eigen::VectorXi &vecExcludeIndex = Eigen::VectorXi());
87
88 //=========================================================================================================
92 static Eigen::VectorXf interpolateSignal(const QSharedPointer<Eigen::SparseMatrix<float> > matInterpolationMatrix,
93 const QSharedPointer<Eigen::VectorXf> &vecMeasurementData);
94
95 //=========================================================================================================
99 static Eigen::VectorXf interpolateSignal(const Eigen::SparseMatrix<float> &matInterpolationMatrix,
100 const Eigen::VectorXf &vecMeasurementData);
101
102 //=========================================================================================================
106 static double linear(const double dIn);
107
108 //=========================================================================================================
112 static double gaussian(const double dIn);
113
114 //=========================================================================================================
118 static double square(const double dIn);
119
120 //=========================================================================================================
124 static double cubic(const double dIn);
125};
126
127} // namespace DISP3DLIB
128
129#endif // INTERPOLATION_H
#define FLOAT_INFINITY
Library export/import macros and namespace marker for the disp3D library.
#define DISP3DSHARED_EXPORT
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.