对\(M\times N\)( \(M>N\))矩阵\(A = U*\Sigma*V^T\)执行奇异值分解。
- 参数
-
src | 指向以列优先方式存储的输入\(M\times N\)矩阵\(A\)。工作完成后,src将填充\(U\)的行,或不进行修改(取决于标志CV_HAL_SVD_MODIFY_A)。 |
src_step | 矩阵\(A\)中两列连续元素之间的字节数。 |
w | 指向矩阵\(A\)奇异值(即\(\Sigma\)矩阵前\(N\)个对角元素)的数组。 |
u | 指向输出\(M\times N\)或\(M\times M\)矩阵\(U\)。指针在未使用标志CV_HAL_SVD_MODIFY_A时必须有效。 |
u_step | 矩阵\(U\)两行连续元素之间的字节数。 |
vt | 指向\(N\times N\)矩阵\(V^T\)的数组。 |
vt_step | 矩阵\(V^T\)中两行连续元素之间的字节数。 |
m | 矩阵\(A\)中行的数量。 |
n | 矩阵\(A\)中列的数量。 |
flags | 算法选项(CV_HAL_SVD_FULL_UV的组合,...)。 |
|
int | hal_ni_SVD32f (float *src, size_t src_step, float *w, float *u, size_t u_step, float *vt, size_t vt_step, int m, int n, int flags) |
|
int | hal_ni_SVD64f (double *src, size_t src_step, double *w, double *u, size_t u_step, double *vt, size_t vt_step, int m, int n, int flags) |
|
◆ hal_ni_SVD32f()
int hal_ni_SVD32f |
( |
float * |
src, |
|
|
size_t |
src_step, |
|
|
float * |
w, |
|
|
float * |
u, |
|
|
size_t |
u_step, |
|
|
float * |
vt, |
|
|
size_t |
vt_step, |
|
|
int |
m, |
|
|
int |
n, |
|
|
int |
flags |
|
) |
| |
|
内联 |
◆ hal_ni_SVD64f()
int hal_ni_SVD64f |
( |
double * |
src, |
|
|
size_t |
src_step, |
|
|
double * |
w, |
|
|
double * |
u, |
|
|
size_t |
u_step, |
|
|
double * |
vt, |
|
|
size_t |
vt_step, |
|
|
int |
m, |
|
|
int |
n, |
|
|
int |
flags |
|
) |
| |
|
内联 |