pub struct SVD { /* private fields */ }
Expand description
Singular Value Decomposition
Class for computing Singular Value Decomposition of a floating-point matrix. The Singular Value Decomposition is used to solve least-square problems, under-determined linear systems, invert matrices, compute condition numbers, and so on.
If you want to compute a condition number of a matrix or an absolute value of
its determinant, you do not need u
and vt
. You can pass
flags=SVD::NO_UV|… . Another flag SVD::FULL_UV indicates that full-size u
and vt must be computed, which is not necessary most of the time.
See also
invert, solve, eigen, determinant
Implementations§
source§impl SVD
impl SVD
sourcepub fn new(src: &dyn ToInputArray, flags: i32) -> Result<SVD>
pub fn new(src: &dyn ToInputArray, flags: i32) -> Result<SVD>
the default constructor
initializes an empty SVD structure
Overloaded parameters
initializes an empty SVD structure and then calls SVD::operator()
Parameters
- src: decomposed matrix. The depth has to be CV_32F or CV_64F.
- flags: operation flags (SVD::Flags)
C++ default parameters
- flags: 0
sourcepub fn compute_ext(
src: &dyn ToInputArray,
w: &mut dyn ToOutputArray,
u: &mut dyn ToOutputArray,
vt: &mut dyn ToOutputArray,
flags: i32
) -> Result<()>
pub fn compute_ext( src: &dyn ToInputArray, w: &mut dyn ToOutputArray, u: &mut dyn ToOutputArray, vt: &mut dyn ToOutputArray, flags: i32 ) -> Result<()>
decomposes matrix and stores the results to user-provided matrices
The methods/functions perform SVD of matrix. Unlike SVD::SVD constructor and SVD::operator(), they store the results to the user-provided matrices:
Mat A, w, u, vt;
SVD::compute(A, w, u, vt);
Parameters
- src: decomposed matrix. The depth has to be CV_32F or CV_64F.
- w: calculated singular values
- u: calculated left singular vectors
- vt: transposed matrix of right singular vectors
- flags: operation flags - see SVD::Flags.
C++ default parameters
- flags: 0
sourcepub fn compute(
src: &dyn ToInputArray,
w: &mut dyn ToOutputArray,
flags: i32
) -> Result<()>
pub fn compute( src: &dyn ToInputArray, w: &mut dyn ToOutputArray, flags: i32 ) -> Result<()>
decomposes matrix and stores the results to user-provided matrices
The methods/functions perform SVD of matrix. Unlike SVD::SVD constructor and SVD::operator(), they store the results to the user-provided matrices:
Mat A, w, u, vt;
SVD::compute(A, w, u, vt);
Parameters
- src: decomposed matrix. The depth has to be CV_32F or CV_64F.
- w: calculated singular values
- u: calculated left singular vectors
- vt: transposed matrix of right singular vectors
- flags: operation flags - see SVD::Flags.
Overloaded parameters
computes singular values of a matrix
- src: decomposed matrix. The depth has to be CV_32F or CV_64F.
- w: calculated singular values
- flags: operation flags - see SVD::Flags.
C++ default parameters
- flags: 0
sourcepub fn back_subst_multi(
w: &dyn ToInputArray,
u: &dyn ToInputArray,
vt: &dyn ToInputArray,
rhs: &dyn ToInputArray,
dst: &mut dyn ToOutputArray
) -> Result<()>
pub fn back_subst_multi( w: &dyn ToInputArray, u: &dyn ToInputArray, vt: &dyn ToInputArray, rhs: &dyn ToInputArray, dst: &mut dyn ToOutputArray ) -> Result<()>
performs back substitution
sourcepub fn solve_z(src: &dyn ToInputArray, dst: &mut dyn ToOutputArray) -> Result<()>
pub fn solve_z(src: &dyn ToInputArray, dst: &mut dyn ToOutputArray) -> Result<()>
solves an under-determined singular linear system
The method finds a unit-length solution x of a singular linear system
A*x = 0. Depending on the rank of A, there can be no solutions, a
single solution or an infinite number of solutions. In general, the
algorithm solves the following problem:
Parameters
- src: left-hand-side matrix.
- dst: found solution.