对 \(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 ) |
|
内联 |