﻿CvInvoke.SVDecomp Method

http://www.emgu.com
Decomposes matrix A into a product of a diagonal matrix and two orthogonal matrices: A=U*W*VT Where W is diagonal matrix of singular values that can be coded as a 1D vector of singular values and U and V. All the singular values are non-negative and sorted (together with U and V columns) in descenting order.

Namespace:  Emgu.CV
Assembly:  Emgu.CV.World (in Emgu.CV.World.dll) Version: 4.1.1.3497 (4.1.1.3497) Syntax
```public static void SVDecomp(
IInputArray src,
IOutputArray w,
IOutputArray u,
IOutputArray v,
SvdFlag flags
)```

#### Parameters

src
Type: Emgu.CVIInputArray
Source MxN matrix
w
Type: Emgu.CVIOutputArray
Resulting singular value matrix (MxN or NxN) or vector (Nx1).
u
Type: Emgu.CVIOutputArray
Optional left orthogonal matrix (MxM or MxN). If CV_SVD_U_T is specified, the number of rows and columns in the sentence above should be swapped
v
Type: Emgu.CVIOutputArray
Optional right orthogonal matrix (NxN)
flags
Type: Emgu.CV.CvEnumSvdFlag
Operation flags Remarks
SVD algorithm is numerically robust and its typical applications include: 1. accurate eigenvalue problem solution when matrix A is square, symmetric and positively defined matrix, for example, when it is a covariation matrix. W in this case will be a vector of eigen values, and U=V is matrix of eigen vectors (thus, only one of U or V needs to be calculated if the eigen vectors are required) 2. accurate solution of poor-conditioned linear systems 3. least-squares solution of overdetermined linear systems. This and previous is done by cvSolve function with CV_SVD method 4. accurate calculation of different matrix characteristics such as rank (number of non-zero singular values), condition number (ratio of the largest singular value to the smallest one), determinant (absolute value of determinant is equal to the product of singular values). All the things listed in this item do not require calculation of U and V matrices. See Also