#include <core.hpp>
Public Types | |
| enum | { MODIFY_A = 1, NO_UV = 2, FULL_UV = 4 } |
Public Member Functions | |
| void | backSubst (const Mat &rhs, CV_OUT Mat &dst) const |
| performs back substitution, so that dst is the solution or pseudo-solution of m*dst = rhs, where m is the decomposed matrix | |
| SVD & | operator() (const Mat &src, int flags=0) |
| the operator that performs SVD. The previously allocated SVD::u, SVD::w are SVD::vt are released. | |
| SVD () | |
| the default constructor | |
| SVD (const Mat &src, int flags=0) | |
| the constructor that performs SVD | |
Static Public Member Functions | |
| static void | backSubst (const Mat &w, const Mat &u, const Mat &vt, const Mat &rhs, CV_OUT Mat &dst) |
| performs back substitution | |
| template<typename _Tp , int m, int n, int nm, int nb> | |
| static void | backSubst (const Matx< _Tp, nm, 1 > &w, const Matx< _Tp, m, nm > &u, const Matx< _Tp, n, nm > &vt, const Matx< _Tp, m, nb > &rhs, Matx< _Tp, n, nb > &dst) |
| static void | compute (const Mat &src, CV_OUT Mat &w, int flags=0) |
| computes singular values of a matrix | |
| template<typename _Tp , int m, int n, int nm> | |
| static void | compute (const Matx< _Tp, m, n > &a, Matx< _Tp, nm, 1 > &w) |
| template<typename _Tp , int m, int n, int nm> | |
| static void | compute (const Matx< _Tp, m, n > &a, Matx< _Tp, nm, 1 > &w, Matx< _Tp, m, nm > &u, Matx< _Tp, n, nm > &vt) |
| static void | compute (const Mat &src, CV_OUT Mat &w, CV_OUT Mat &u, CV_OUT Mat &vt, int flags=0) |
| decomposes matrix and stores the results to user-provided matrices | |
| static void | solveZ (const Mat &src, CV_OUT Mat &dst) |
| finds dst = arg min_{|dst|=1} |m*dst| | |
Public Attributes | |
| Mat | u |
| Mat | vt |
| Mat | w |
Singular Value Decomposition class
The class is used to compute Singular Value Decomposition of a floating-point matrix and then use it to solve least-square problems, under-determined linear systems, invert matrices, compute condition numbers etc.
For a bit faster operation you can pass flags=SVDMODIFY_A|... to modify the decomposed matrix when it is not necessarily to preserve it. If you want to compute condition number of a matrix or absolute value of its determinant - you do not need SVD::u or SVD::vt, so you can pass flags=SVDNO_UV|... . Another flag SVD::FULL_UV indicates that the full-size SVD::u and SVD::vt must be computed, which is not necessary most of the time.
| cv::SVD::SVD | ( | ) | [inline] |
the default constructor
| static void cv::SVD::backSubst | ( | const Mat & | w, |
| const Mat & | u, | ||
| const Mat & | vt, | ||
| const Mat & | rhs, | ||
| CV_OUT Mat & | dst | ||
| ) | [static] |
performs back substitution
performs back substitution, so that dst is the solution or pseudo-solution of m*dst = rhs, where m is the decomposed matrix
| void cv::SVD::backSubst | ( | const Matx< _Tp, nm, 1 > & | w, |
| const Matx< _Tp, m, nm > & | u, | ||
| const Matx< _Tp, n, nm > & | vt, | ||
| const Matx< _Tp, m, nb > & | rhs, | ||
| Matx< _Tp, n, nb > & | dst | ||
| ) | [inline, static] |
computes singular values of a matrix
| static void cv::SVD::compute | ( | const Mat & | src, |
| CV_OUT Mat & | w, | ||
| CV_OUT Mat & | u, | ||
| CV_OUT Mat & | vt, | ||
| int | flags = 0 |
||
| ) | [static] |
decomposes matrix and stores the results to user-provided matrices
| void cv::SVD::compute | ( | const Matx< _Tp, m, n > & | a, |
| Matx< _Tp, nm, 1 > & | w, | ||
| Matx< _Tp, m, nm > & | u, | ||
| Matx< _Tp, n, nm > & | vt | ||
| ) | [inline, static] |
| void cv::SVD::compute | ( | const Matx< _Tp, m, n > & | a, |
| Matx< _Tp, nm, 1 > & | w | ||
| ) | [inline, static] |
finds dst = arg min_{|dst|=1} |m*dst|
1.7.2