![]() |
Image Component Library (ICL)
|
Namespaces | |
| fft | |
Classes | |
| struct | DynColVector |
| Extension class for the DynMatrix<T> template, that restricts the the matrix column count to 'one'. More... | |
| struct | DynMatrix |
| Highly flexible and optimized matrix class implementation. More... | |
| struct | DynRowVector |
| class | FFTException |
| Special exception implementation for the FFT package. More... | |
| struct | FixedColVector |
| class | FixedMatrix |
| Powerful and highly flexible matrix class implementation. More... | |
| struct | FixedMatrixBase |
| FixedMatrix base struct defining datamode enum. More... | |
| class | FixedMatrixPart |
| Utility struct for FixedMatrix sub-parts. More... | |
| struct | FixedRowVector |
| struct | GenericHomography2D |
| Utility structure that represents a 2D homography (implemented for float and double) More... | |
| class | GraphCutter |
| class for graph cut algorithms on undirected graphs (a graph is represented by an adjacency matrix). More... | |
| struct | IncompatibleMatrixDimensionException |
| Special linear algebra exception type . More... | |
| struct | InvalidIndexException |
| Special linear algebra exception type . More... | |
| struct | InvalidMatrixDimensionException |
| Special linear algebra exception type . More... | |
| class | KDTree |
| Simple KD-Tree implementation. More... | |
| class | KMeans |
| Generic Implementation of the K-Means algorithm. More... | |
| class | LeastSquareModelFitting |
| Direct Least Square Fitting Algorithm. More... | |
| class | LeastSquareModelFitting2D |
| Direct Least Square Fitting specialization for 2D input data. More... | |
| class | LevenbergMarquardtFitter |
| Utility class implementing the multidimensional Levenberg Marquardt Algorithm for non-linear Optimization. More... | |
| struct | LinearTransform1D |
| A standard linear mapping class for the 1D case f(x) = m * x + b. More... | |
| class | LLM |
| Local Linear Map implementation (LLM) More... | |
| class | MatrixSubRectIterator |
| Iterator class used to iterate through a sub rect of 2D data. More... | |
| class | Octree |
| Generic Octree Implementation. More... | |
| class | PolynomialRegression |
| Generic Implementation of the Polynomial Regression algorithm. More... | |
| class | Projective4PointTransform |
| Utility class that provides functions to perspectively map 4 points of a source frame into 4 points of a destination frame. More... | |
| class | QuadTree |
| Generic QuadTree Implementation. More... | |
| class | RansacFitter |
| Generic RANSAC (RAndom SAmpling Consensus) Implementation. More... | |
| struct | SimplexOptimizationResult |
| Utility structure, that is used as accumulator for results of the SimplexOptimizer class. More... | |
| class | SimplexOptimizer |
| Template based implementation for the Downhill Simplex Optimiztation method. More... | |
| struct | SingularMatrixException |
| Special linear algebra exception type . More... | |
| class | SOM |
| Generic implementation of D to K dim Self Organizing Map (SOM) More... | |
| class | SOM2D |
| Simple Wrapper class of the generic SOM Implementation for 2D SOMs. More... | |
| class | StochasticOptimizer |
| The StochasticOptimizer is a tiny frame-work for simple stochastic optimization processes. More... | |
| struct | StochasticOptimizerResult |
| Utility structure for the stochastic optimizer class. More... | |
| struct | StraightLine2D |
| A straight line is parameterized in offset/direction form. More... | |
Typedefs | |
| typedef FixedColVector< icl32f, 3 > | Vec3 |
| another shortcut for 3D vectors More... | |
| typedef FixedColVector< icl32f, 4 > | Vec4 |
| another shortcut for 3D vectors More... | |
| typedef FixedMatrix< icl32f, 3, 3 > | Mat3 |
| typedef for 3x3 fixed matrices More... | |
| typedef FixedMatrix< icl32f, 4, 4 > | Mat4 |
| typedef for 4x4 fixed matrices More... | |
| typedef GenericHomography2D< float > | Homography2D |
| default homography 2D type definition (usually float depth is enough) More... | |
| typedef std::complex< double > | xcomplex |
| typedef double | xreal |
Enumerations | |
| enum | AXES { sxyz, sxyx, sxzy, sxzx, syzx, syzy, syxz, syxy, szxy, szxz, szyx, szyz, rzyx, rxyx, ryzx, rxzx, rxzy, ryzy, rzxy, ryxy, ryxz, rzxz, rxyz, rzyz } |
| axes order specifications for euler angles More... | |
Functions | |
| template<class T > | |
| ICLMath_IMP std::ostream & | operator<< (std::ostream &s, const DynMatrix< T > &m) |
| ostream operator implemented for uchar, short, int, float and double matrices More... | |
| template<class T > | |
| ICLMath_IMP std::istream & | operator>> (std::istream &s, DynMatrix< T > &m) |
| istream operator implemented for uchar, short, int, float and double matrices More... | |
| template<class T > | |
| DynMatrix< T > | operator, (const DynMatrix< T > &left, const DynMatrix< T > &right) |
| vertical concatenation of matrices More... | |
| template<class T > | |
| DynMatrix< T > | operator% (const DynMatrix< T > &top, const DynMatrix< T > &bottom) |
| horizontal concatenation of matrices More... | |
| template<class T , class Init > | |
| DynMatrix< T > & | matrix_init (DynMatrix< T > &m, Init init) |
| Matrix initialization template. More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_abs (DynMatrix< T > &m) |
| element-wise absolute value (inplace) [IPP-optimized] More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_abs (const DynMatrix< T > &m, DynMatrix< T > &dst) |
| element-wise absolute value [IPP-optimized] More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_log (DynMatrix< T > &m) |
| element-wise logarith (basis E) (inplace) [IPP-optimized] More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_log (const DynMatrix< T > &m, DynMatrix< T > &dst) |
| element-wise logarith (basis E) [IPP-optimized] More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_exp (DynMatrix< T > &m) |
| element-wise exp-function (inplace) [IPP-optimized] More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_exp (const DynMatrix< T > &m, DynMatrix< T > &dst) |
| element-wise exp-function [IPP-optimized] More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_sqrt (DynMatrix< T > &m) |
| element-wise square-root-function (inplace) [IPP-optimized] More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_sqrt (const DynMatrix< T > &m, DynMatrix< T > &dst) |
| element-wise square-root-function [IPP-optimized] More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_sqr (DynMatrix< T > &m) |
| element-wise square-function (x*x) (inplace) [IPP-optimized] More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_sqr (const DynMatrix< T > &m, DynMatrix< T > &dst) |
| element-wise square-function (x*x) [IPP-optimized] More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_sin (DynMatrix< T > &m) |
| element-wise sinus-function (x*x) (inplace) More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_sin (const DynMatrix< T > &m, DynMatrix< T > &dst) |
| element-wise sinus-function (x*x) More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_cos (DynMatrix< T > &m) |
| element-wise cosinus-function (inplace) More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_cos (const DynMatrix< T > &m, DynMatrix< T > &dst) |
| element-wise cosinus-function More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_tan (DynMatrix< T > &m) |
| element-wise tangent-function (inplace) More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_tan (const DynMatrix< T > &m, DynMatrix< T > &dst) |
| element-wise tangent-function More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_arcsin (DynMatrix< T > &m) |
| element-wise arcus sinus-function (inplace) More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_arcsin (const DynMatrix< T > &m, DynMatrix< T > &dst) |
| element-wise arcus sinus-function More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_arccos (DynMatrix< T > &m) |
| element-wise arcus cosinus-function (inplace) More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_arccos (const DynMatrix< T > &m, DynMatrix< T > &dst) |
| element-wise arcus cosinus-function More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_arctan (DynMatrix< T > &m) |
| element-wise arcus tangent-function (inplace) More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_arctan (const DynMatrix< T > &m, DynMatrix< T > &dst) |
| element-wise arcus tangent-function More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_reciprocal (DynMatrix< T > &m) |
| element-wise reciprocal-function (1/x) (inplace) More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_reciprocal (const DynMatrix< T > &m, DynMatrix< T > &dst) |
| element-wise reciprocal-function (1/x) More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_powc (DynMatrix< T > &m, T exponent) |
| element-wise power-function (x^exponent) (inplace) More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_powc (const DynMatrix< T > &m, T exponent, DynMatrix< T > &dst) |
| element-wise power-function (x^exponent) More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_addc (DynMatrix< T > &m, T val) |
| element-wise addition of constant value (inplace) [IPP-optimized] More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_addc (const DynMatrix< T > &m, T val, DynMatrix< T > &dst) |
| element-wise addition of constant value [IPP-optimized] More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_subc (DynMatrix< T > &m, T val) |
| element-wise substraction of constant value (inplace) [IPP-optimized] More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_subc (const DynMatrix< T > &m, T val, DynMatrix< T > &dst) |
| element-wise substraction of constant value [IPP-optimized] More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_divc (DynMatrix< T > &m, T val) |
| element-wise division by constant value (inplace) [IPP-optimized] More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_divc (const DynMatrix< T > &m, T val, DynMatrix< T > &dst) |
| element-wise division by constant value [IPP-optimized] More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_mulc (DynMatrix< T > &m, T val) |
| element-wise multiplication with constant value (inplace) [IPP-optimized] More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_mulc (const DynMatrix< T > &m, T val, DynMatrix< T > &dst) |
| element-wise multiplication with constant value [IPP-optimized] More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_arctan2 (const DynMatrix< T > &my, const DynMatrix< T > &mx, DynMatrix< T > &dst) |
| element-wise atan2 function atan2(y,x) More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_add (const DynMatrix< T > &m1, const DynMatrix< T > &m2, DynMatrix< T > &dst) |
| element-wise addition [IPP-optimized] More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_sub (const DynMatrix< T > &m1, const DynMatrix< T > &m2, DynMatrix< T > &dst) |
| element-wise substraction [IPP-optimized] More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_mul (const DynMatrix< T > &m1, const DynMatrix< T > &m2, DynMatrix< T > &dst) |
| element-wise multiplication [IPP-optimized] More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_div (const DynMatrix< T > &m1, const DynMatrix< T > &m2, DynMatrix< T > &dst) |
| element-wise division [IPP-optimized] More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_pow (const DynMatrix< T > &m1, const DynMatrix< T > &m2, DynMatrix< T > &dst) |
| element-wise power More... | |
| template<class T > | |
| ICLMath_IMP void | svd_dyn (const DynMatrix< T > &A, DynMatrix< T > &U, DynMatrix< T > &S, DynMatrix< T > &V) |
| SVD function - decomposes A into USV' (only icl32f and icl64f) More... | |
| template<class T , unsigned int WIDTH, unsigned int HEIGHT, unsigned int HEIGHT2> | |
| FixedMatrix< T, WIDTH, HEIGHT+HEIGHT2 > | operator% (const FixedMatrix< T, WIDTH, HEIGHT > &a, const FixedMatrix< T, WIDTH, HEIGHT2 > &b) |
| Vertical Matrix concatenation. More... | |
| template<class T , unsigned int WIDTH, unsigned int HEIGHT, unsigned int WIDTH2> | |
| FixedMatrix< T, WIDTH+WIDTH2, HEIGHT > | operator, (const FixedMatrix< T, WIDTH, HEIGHT > &a, const FixedMatrix< T, WIDTH2, HEIGHT > &b) |
| Horizontal Matrix concatenation. More... | |
| template<class T , unsigned int M_ROWS_AND_COLS, unsigned int V_COLS> | |
| FixedMatrix< T, V_COLS, M_ROWS_AND_COLS > & | operator *= (FixedMatrix< T, V_COLS, M_ROWS_AND_COLS > &v, const FixedMatrix< T, M_ROWS_AND_COLS, M_ROWS_AND_COLS > &m) |
| Matrix multiplication (inplace) More... | |
| template<class T , unsigned int COLS, unsigned int ROWS> | |
| std::ostream & | operator<< (std::ostream &s, const FixedMatrix< T, COLS, ROWS > &m) |
| put the matrix into a std::ostream (human readable) More... | |
| template<class T , unsigned int COLS, unsigned int ROWS> | |
| std::istream & | operator>> (std::istream &s, FixedMatrix< T, COLS, ROWS > &m) |
| read matrix from std::istream (human readable) More... | |
| template<class T > | |
| ICLMath_IMP FixedMatrix< T, 2, 2 > | create_rot_2D (T angle) |
| creates a 2D rotation matrix (defined for float and double) More... | |
| template<class T > | |
| ICLMath_IMP FixedMatrix< T, 3, 3 > | create_hom_3x3 (T angle, T dx=0, T dy=0, T v0=0, T v1=0) |
| creates a 2D homogen matrix (defined for float and double) More... | |
| template<class T > | |
| FixedMatrix< T, 3, 3 > | create_hom_3x3_trans (T dx, T dy) |
| creates a 2D homogen matrix with translation part only (defined for float and double) More... | |
| template<class T > | |
| ICLMath_IMP FixedMatrix< T, 3, 3 > | create_rot_3D (T axisX, T axisY, T axisZ, T angle) |
| create 3D rotation matrix from rotation axis and angle (defined for float and double only) More... | |
| template<class T > | |
| ICLMath_IMP FixedMatrix< T, 3, 3 > | create_rot_3D (T ai, T aj, T ak, AXES axes=AXES_DEFAULT) |
| create 3D rotation matrix from euler angles in specified axes order (defined for float and double only) More... | |
| template<class T > | |
| ICLMath_IMP FixedMatrix< T, 4, 4 > | create_hom_4x4 (T rx, T ry, T rz, T dx=0, T dy=0, T dz=0, T v0=0, T v1=0, T v2=0, AXES axes=AXES_DEFAULT) |
| creates a 3D homogeneous matrix (defined for float and double) More... | |
| template<class T > | |
| ICLMath_IMP FixedMatrix< T, 4, 4 > | create_rot_4x4 (T axisX, T axisY, T axisZ, T angle) |
| create 4D homogeneous matrix that rotates about given axis by given angle (defined for float and double only) More... | |
| template<class T > | |
| FixedMatrix< T, 4, 4 > | create_hom_4x4_trans (T dx, T dy, T dz) |
| creates 4D homogeneous matrix with translation part only (defined for float and double) More... | |
| template<class T > | |
| ICLMath_IMP FixedMatrix< T, 1, 3 > | extract_euler_angles (const FixedMatrix< T, 3, 3 > &m, AXES axes=AXES_DEFAULT) |
| compute euler angles for rotation matrix assuming specified axes order More... | |
| template<class T > | |
| ICLMath_IMP FixedMatrix< T, 1, 3 > | extract_euler_angles (const FixedMatrix< T, 4, 4 > &m, AXES axes=AXES_DEFAULT) |
| OPTIMIZED_MATRIX_MULTIPLICATION (2, 2, 2, float, 32f) | |
| OPTIMIZED_MATRIX_MULTIPLICATION (3, 3, 3, float, 32f) | |
| OPTIMIZED_MATRIX_MULTIPLICATION (4, 4, 4, float, 32f) | |
| OPTIMIZED_MATRIX_MULTIPLICATION (2, 2, 2, double, 64f) | |
| OPTIMIZED_MATRIX_MULTIPLICATION (3, 3, 3, double, 64f) | |
| OPTIMIZED_MATRIX_MULTIPLICATION (4, 4, 4, double, 64f) | |
| template<class T > | |
| T | linear_interpolate (const T &a, const T &b, float x) |
| linearly interpolates between a, b (x must be in range [0,1]) More... | |
| ICLMath_API float | dist_point_linesegment (const Vec4 &p, const Vec4 &lineStart, const Vec4 &lineEnd, Vec4 *nearestPoint=0) |
| distance from point p to line segment (lineStart -> lineEnd) More... | |
| ICLMath_API float | dist_point_triangle (const Vec4 &p, const Vec4 &a, const Vec4 &b, const Vec4 &c, Vec4 *nearestPoint=0) |
| distance from point p to triangle (a - b - c) More... | |
| Vec4 | bilinear_interpolate (const Vec4 corners[4], float x, float y) |
| bilinear vector interpolation More... | |
| template<class T > | |
| math::FixedColVector< T, 4 > | normalize (const math::FixedMatrix< T, 1, 4 > &v) |
| normalize a vector to length 1 More... | |
| template<class T > | |
| math::FixedColVector< T, 4 > | normalize3 (const math::FixedMatrix< T, 1, 4 > &v, const double &h=1) |
| normalize a vector to length 1 More... | |
| float | sprod3 (const Vec3 &a, const Vec3 &b) |
| 3D scalar (aka dot-) product for 4D homogeneous vectors (ignoring the homegeneous component) More... | |
| template<class T > | |
| FixedMatrix< T, 3, 3 > | gramSchmidtOrtho (FixedMatrix< T, 3, 3 > const &mat) |
| float | sprod3 (const Vec4 &a, const Vec4 &b) |
| 3D scalar (aka dot-) product for 4D homogeneous vectors (ignoring the homegeneous component) More... | |
| float | sqrnorm3 (const Vec4 &a) |
| sqared norm for 4D homogeneous vectors (ignoring the homegeneous component) More... | |
| float | norm3 (const Vec4 &a) |
| 3D- euclidian norm for 4D homogeneous vectors (ignoring the homegeneous component) More... | |
| float | dist3 (const Vec4 &a, const Vec4 &b) |
| 3d euclidian distance More... | |
| template<class T > | |
| math::FixedColVector< T, 4 > | homogenize (const math::FixedMatrix< T, 1, 4 > &v) |
| homogenize a vector by normalizing 4th component to 1 More... | |
| template<class T > | |
| math::FixedColVector< T, 4 > | project (math::FixedMatrix< T, 1, 4 > v, T z) |
| perform perspective projection More... | |
| template<class T > | |
| math::FixedColVector< T, 4 > | cross (const math::FixedMatrix< T, 1, 4 > &v1, const math::FixedMatrix< T, 1, 4 > &v2) |
| homogeneous 3D cross-product More... | |
| template<class T > | |
| math::FixedColVector< T, 3 > | cross (const math::FixedMatrix< T, 1, 3 > &v1, const math::FixedMatrix< T, 1, 3 > &v2) |
| Vec4 | rotate_vector (const Vec4 &axis, float angle, const Vec4 &vec) |
| rotates a vector around a given axis More... | |
| template<class ForwardIterator > | |
| float | euclidian (ForwardIterator v1Begin, ForwardIterator v1End, ForwardIterator v2Begin) |
| Calculate the euclidian distance of two vectors v1 and v2. More... | |
| template<class T > | |
| float | euclidian (const std::vector< T > &a, const std::vector< T > &b) |
| Calculate the euclidian distance of points a and b. More... | |
| template<class ForwardIterator > | |
| double | mean (ForwardIterator begin, ForwardIterator end) |
| computes the mean value of a data range More... | |
| template<class ForwardIterator > | |
| double | variance (ForwardIterator begin, ForwardIterator end, double mean, bool empiricMean=true) |
| Compute the variance of a given data range with given mean value. More... | |
| template<class ForwardIterator > | |
| double | variance (ForwardIterator begin, ForwardIterator end) |
| Compute the variance of a given data range. More... | |
| template<class ForwardIterator > | |
| double | stdDeviation (ForwardIterator begin, ForwardIterator end, double mean, bool empiricMean=true) |
| Compute std-deviation of a data set with given mean (calls sqrt(variance(..)) More... | |
| template<class ForwardIterator > | |
| double | stdDeviation (ForwardIterator begin, ForwardIterator end) |
| Compute std-deviation of a data set. More... | |
| template<class ForwardIterator > | |
| std::pair< double, double > | meanAndStdDev (ForwardIterator begin, ForwardIterator end) |
| Calculates mean and standard deviation of given data range simultanously. More... | |
| static xreal | xnorm (xcomplex z) |
| static xreal | xabs (xcomplex z) |
| static xreal | xroot (xreal x, int n) |
| static int | xlogb (xcomplex z) |
| static void | xscalbln (xcomplex *z, int e) |
| static xcomplex | cauchy (const int deg, xcomplex *P) |
| static void | scale (const int deg, xcomplex *P) |
| static void | noshft (const int l1, int deg, xcomplex *P, xcomplex *H) |
| static xcomplex | polyev (const int deg, const xcomplex s, const xcomplex *Q, xcomplex *q) |
| static xcomplex | calct (bool *bol, int deg, xcomplex Ps, xcomplex *H, xcomplex *h, xcomplex s) |
| static void | nexth (const bool bol, int deg, xcomplex t, xcomplex *H, xcomplex *h, xcomplex *p) |
| static xreal | errev (const int deg, const xcomplex *p, const xreal ms, const xreal mp) |
| static bool | vrshft (const int l3, int deg, xcomplex *P, xcomplex *p, xcomplex *H, xcomplex *h, xcomplex *zero, xcomplex *s) |
| static bool | fxshft (const int l2, int deg, xcomplex *P, xcomplex *p, xcomplex *H, xcomplex *h, xcomplex *zero, xcomplex *s) |
| int | cpoly (int degree, const xcomplex poly[], xcomplex Roots[]) |
| int | solve_poly (int degree, const double *in_real, const double *in_imag, double *out_real, double *out_imag) |
Variables | |
| ICLMath_API const AXES | AXES_DEFAULT |
| struct { | |
| double icl::math::ZERO | |
| double icl::math::INFIN | |
| int icl::math::MIN_EXP | |
| int icl::math::MAX_EXP | |
| } | xdata = { 0.0, DBL_MAX, DBL_MIN_EXP, DBL_MAX_EXP } |
matrix distance measurement | |
| template<class T > | |
| ICLMath_IMP T | matrix_distance (const DynMatrix< T > &m1, const DynMatrix< T > &m2, T norm=2) |
| computes norm between matrix vectors More... | |
| template<class T > | |
| ICLMath_IMP T | matrix_divergence (const DynMatrix< T > &m1, const DynMatrix< T > &m2) |
| computes generalized Kullback-Leibler-divergence between matrix vectors More... | |
statistical functions | |
| template<class T > | |
| ICLMath_IMP T | matrix_min (const DynMatrix< T > &m, int *x=0, int *y=0) |
| find minimum element of matrix (optionally find location too) [IPP-optimized] More... | |
| template<class T > | |
| ICLMath_IMP T | matrix_max (const DynMatrix< T > &m, int *x=0, int *y=0) |
| find maximum element of matrix (optionally find location too) [IPP-optimized] More... | |
| template<class T > | |
| ICLMath_IMP void | matrix_minmax (const DynMatrix< T > &m, T dst[2], int *minx=0, int *miny=0, int *maxx=0, int *maxy=0) |
| find min- and maxinim element at once (optionally with locations) [IPP-optimized] More... | |
| template<class T > | |
| ICLMath_IMP T | matrix_mean (const DynMatrix< T > &m) |
| calculate matrix mean value [IPP-optimized] More... | |
| template<class T > | |
| ICLMath_IMP T | matrix_var (const DynMatrix< T > &m) |
| calculate matrix variance [IPP-optimized] More... | |
| template<class T > | |
| ICLMath_IMP T | matrix_var (const DynMatrix< T > &m, T mean, bool empiricalMean=true) |
| calculate matrix variance with given mean More... | |
| template<class T > | |
| ICLMath_IMP void | matrix_meanvar (const DynMatrix< T > &m, T *mean, T *var) |
| computes matrix mean and variance at once [IPP-optimized] More... | |
| template<class T > | |
| ICLMath_IMP T | matrix_stddev (const DynMatrix< T > &m) |
| computes matrix standard deviation (sqrt(var)) [IPP-optimized] More... | |
| template<class T > | |
| ICLMath_IMP T | matrix_stddev (const DynMatrix< T > &m, T mean, bool empiricalMean=true) |
| calculate matrix standard deviation with given mean More... | |
other functions ... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_muladd (const DynMatrix< T > &a, T alpha, const DynMatrix< T > &b, T beta, T gamma, DynMatrix< T > &dst) |
| computes alpha*a + beta*b + gamma More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_muladd (const DynMatrix< T > &a, T alpha, T gamma, DynMatrix< T > &dst) |
| computes alpha*a + gamma More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_mask (const DynMatrix< unsigned char > &mask, DynMatrix< T > &m) |
| applies masking operation (m(i,j) is set to 0 if mask(i,j) is 0) (inplace) More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_mask (const DynMatrix< unsigned char > &mask, const DynMatrix< T > &m, DynMatrix< T > &dst) |
| applies masking operation (m(i,j) is set to 0 if mask(i,j) is 0) More... | |
special functions for transposed matrices ... | |
| enum | transposedDef { NONE_T =0, SRC1_T =1<<0, SRC2_T =1<<1, BOTH_T =SRC1_T | SRC2_T } |
| special utility type for definition of transposed states for matrices More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_mult_t (const DynMatrix< T > &src1, const DynMatrix< T > &src2, DynMatrix< T > &dst, int transpDef) |
| applies matrix mutliplication on optionally transposed matrices More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | big_matrix_mult_t (const DynMatrix< T > &src1, const DynMatrix< T > &src2, DynMatrix< T > &dst, int transpDef) |
| applies matrix mutliplication on optionally transposed matrices (specialized for big matrices) More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_add_t (const DynMatrix< T > &src1, const DynMatrix< T > &src2, DynMatrix< T > &dst, int transpDef) |
| applies matrix addition on optionally transposed matrices More... | |
| template<class T > | |
| ICLMath_IMP DynMatrix< T > & | matrix_sub_t (const DynMatrix< T > &src1, const DynMatrix< T > &src2, DynMatrix< T > &dst, int transpDef) |
| applies matrix substraction on optionally transposed matrices More... | |
| typedef GenericHomography2D<float> icl::math::Homography2D |
default homography 2D type definition (usually float depth is enough)
| typedef FixedMatrix<icl32f, 3,3> icl::math::Mat3 |
typedef for 3x3 fixed matrices
| typedef FixedMatrix<icl32f, 4,4> icl::math::Mat4 |
typedef for 4x4 fixed matrices
| typedef FixedColVector<icl32f,3> icl::math::Vec3 |
another shortcut for 3D vectors
| typedef FixedColVector<icl32f,4> icl::math::Vec4 |
another shortcut for 3D vectors
| typedef std::complex<double> icl::math::xcomplex |
| typedef double icl::math::xreal |
| enum icl::math::AXES |
bilinear vector interpolation
corner order ul, ur, ll, lr 0 --— 1 | | | --> x | 2 ---—3 \/ y
|
static |
| ICLMath_IMP FixedMatrix<T, 3, 3> icl::math::create_hom_3x3 | ( | T | angle, |
| T | dx = 0, |
||
| T | dy = 0, |
||
| T | v0 = 0, |
||
| T | v1 = 0 |
||
| ) |
creates a 2D homogen matrix (defined for float and double)
|
inline |
creates a 2D homogen matrix with translation part only (defined for float and double)
| ICLMath_IMP FixedMatrix<T,4,4> icl::math::create_hom_4x4 | ( | T | rx, |
| T | ry, | ||
| T | rz, | ||
| T | dx = 0, |
||
| T | dy = 0, |
||
| T | dz = 0, |
||
| T | v0 = 0, |
||
| T | v1 = 0, |
||
| T | v2 = 0, |
||
| AXES | axes = AXES_DEFAULT |
||
| ) |
creates a 3D homogeneous matrix (defined for float and double)
|
inline |
creates 4D homogeneous matrix with translation part only (defined for float and double)
| ICLMath_IMP FixedMatrix<T, 2, 2> icl::math::create_rot_2D | ( | T | angle | ) |
creates a 2D rotation matrix (defined for float and double)
| ICLMath_IMP FixedMatrix<T, 3, 3> icl::math::create_rot_3D | ( | T | axisX, |
| T | axisY, | ||
| T | axisZ, | ||
| T | angle | ||
| ) |
create 3D rotation matrix from rotation axis and angle (defined for float and double only)
| ICLMath_IMP FixedMatrix<T,3,3> icl::math::create_rot_3D | ( | T | ai, |
| T | aj, | ||
| T | ak, | ||
| AXES | axes = AXES_DEFAULT |
||
| ) |
create 3D rotation matrix from euler angles in specified axes order (defined for float and double only)
| ICLMath_IMP FixedMatrix<T, 4, 4> icl::math::create_rot_4x4 | ( | T | axisX, |
| T | axisY, | ||
| T | axisZ, | ||
| T | angle | ||
| ) |
create 4D homogeneous matrix that rotates about given axis by given angle (defined for float and double only)
|
inline |
homogeneous 3D cross-product
|
inline |
| ICLMath_API float icl::math::dist_point_linesegment | ( | const Vec4 & | p, |
| const Vec4 & | lineStart, | ||
| const Vec4 & | lineEnd, | ||
| Vec4 * | nearestPoint = 0 |
||
| ) |
distance from point p to line segment (lineStart -> lineEnd)
The implementation is based on the code of http://www.geometrictools.com which is povided under the terms of the "Boost Software License 1.0" (http://www.boost.org/LICENSE_1_0.txt)
| ICLMath_API float icl::math::dist_point_triangle | ( | const Vec4 & | p, |
| const Vec4 & | a, | ||
| const Vec4 & | b, | ||
| const Vec4 & | c, | ||
| Vec4 * | nearestPoint = 0 |
||
| ) |
distance from point p to triangle (a - b - c)
The implementation is based on the code of http://www.geometrictools.com which is povided under the terms of the "Boost Software License 1.0" (http://www.boost.org/LICENSE_1_0.txt)
|
static |
|
inline |
Calculate the euclidian distance of two vectors v1 and v2.
| v1Begin | first element of v1 |
| v1End | end of v1 (points the first element behind v1) |
| v2Begin | first element of v2 |
|
inline |
Calculate the euclidian distance of points a and b.
| a | The first point |
| b | The second point |
| ICLMath_IMP FixedMatrix<T,1,3> icl::math::extract_euler_angles | ( | const FixedMatrix< T, 3, 3 > & | m, |
| AXES | axes = AXES_DEFAULT |
||
| ) |
compute euler angles for rotation matrix assuming specified axes order
| ICLMath_IMP FixedMatrix<T,1,3> icl::math::extract_euler_angles | ( | const FixedMatrix< T, 4, 4 > & | m, |
| AXES | axes = AXES_DEFAULT |
||
| ) |
|
static |
|
inline |
|
inline |
homogenize a vector by normalizing 4th component to 1
| T icl::math::linear_interpolate | ( | const T & | a, |
| const T & | b, | ||
| float | x | ||
| ) |
linearly interpolates between a, b (x must be in range [0,1])
if x is 0, a is returned and if x is 1, b is returned
| ICLMath_IMP DynMatrix<T>& icl::math::matrix_powc | ( | const DynMatrix< T > & | m, |
| T | exponent, | ||
| DynMatrix< T > & | dst | ||
| ) |
element-wise power-function (x^exponent)
For float and double only
|
inline |
computes the mean value of a data range
| begin | start iterator |
| end | end iterator IPP-optimized for float and double |
|
inline |
Calculates mean and standard deviation of given data range simultanously.
| begin | start iterator |
| end | end iterator |
|
static |
|
inline |
3D- euclidian norm for 4D homogeneous vectors (ignoring the homegeneous component)
|
inline |
normalize a vector to length 1
|
inline |
normalize a vector to length 1
|
inline |
Matrix multiplication (inplace)
inplace matrix multiplication does only work for squared source and destination matrices of identical size
|
inline |
horizontal concatenation of matrices
missing elementes are padded with 0
|
inline |
vertical concatenation of matrices
missing elementes are padded with 0
|
inline |
put the matrix into a std::ostream (human readable)
Internally, this function wraps a DynMatrix<T> shallowly around m
|
inline |
read matrix from std::istream (human readable)
Internally, this function wraps a DynMatrix<T> shallowly around m
| icl::math::OPTIMIZED_MATRIX_MULTIPLICATION | ( | 2 | , |
| 2 | , | ||
| 2 | , | ||
| float | , | ||
| 32f | |||
| ) |
| icl::math::OPTIMIZED_MATRIX_MULTIPLICATION | ( | 3 | , |
| 3 | , | ||
| 3 | , | ||
| float | , | ||
| 32f | |||
| ) |
| icl::math::OPTIMIZED_MATRIX_MULTIPLICATION | ( | 4 | , |
| 4 | , | ||
| 4 | , | ||
| float | , | ||
| 32f | |||
| ) |
| icl::math::OPTIMIZED_MATRIX_MULTIPLICATION | ( | 2 | , |
| 2 | , | ||
| 2 | , | ||
| double | , | ||
| 64f | |||
| ) |
| icl::math::OPTIMIZED_MATRIX_MULTIPLICATION | ( | 3 | , |
| 3 | , | ||
| 3 | , | ||
| double | , | ||
| 64f | |||
| ) |
| icl::math::OPTIMIZED_MATRIX_MULTIPLICATION | ( | 4 | , |
| 4 | , | ||
| 4 | , | ||
| double | , | ||
| 64f | |||
| ) |
|
static |
|
inline |
perform perspective projection
rotates a vector around a given axis
|
static |
| int icl::math::solve_poly | ( | int | degree, |
| const double * | in_real, | ||
| const double * | in_imag, | ||
| double * | out_real, | ||
| double * | out_imag | ||
| ) |
3D scalar (aka dot-) product for 4D homogeneous vectors (ignoring the homegeneous component)
3D scalar (aka dot-) product for 4D homogeneous vectors (ignoring the homegeneous component)
|
inline |
sqared norm for 4D homogeneous vectors (ignoring the homegeneous component)
|
inline |
Compute std-deviation of a data set with given mean (calls sqrt(variance(..))
| begin | start iterator |
| end | end iterator |
| mean | given mean value |
| empiricMean | if true, sum of square distances is devidec by n-1 else by n |
|
inline |
Compute std-deviation of a data set.
| begin | start iterator |
| end | end iterator |
| ICLMath_IMP void icl::math::svd_dyn | ( | const DynMatrix< T > & | A, |
| DynMatrix< T > & | U, | ||
| DynMatrix< T > & | S, | ||
| DynMatrix< T > & | V | ||
| ) |
SVD function - decomposes A into USV' (only icl32f and icl64f)
Internaly, this function will always use double values. Other types are converted internally.
| A | to decomposed matrix |
| U | is filled column-wise with the eigenvectors of AA' |
| S | is filled with the singular values of A (s is ColumnVector and not diagonal matrix) |
| V | is filled column-wise with the eigenvectors of A'A (in V, V is stored not V') |
|
inline |
Compute the variance of a given data range with given mean value.
| begin | start iterator |
| end | end iterator |
| mean | mean value of the range |
| empiricMean | if true, sum of square distances is devidec by n-1 else by n |
|
inline |
Compute the variance of a given data range.
| begin | start ForwardIterator |
| end | end ForwardIterator |
|
static |
|
static |
|
static |
| ICLMath_API const AXES icl::math::AXES_DEFAULT |
| double icl::math::INFIN |
| int icl::math::MAX_EXP |
| int icl::math::MIN_EXP |
| const { ... } icl::math::xdata |
| double icl::math::ZERO |
1.8.15