【发布时间】:2015-02-15 06:04:49
【问题描述】:
我同时使用 OpenCV 和 Eigen 来计算 SVD:
Eigen:
JacobiSVD<Matrix3f> svd(myM, ComputeFullU);
OpenCV:
cvSVD(&myM, &w, &u, 0, CV_SVD_MODIFY_A | CV_SVD_U_T);
我专注于左奇异向量:
Eigen result:
0.0341698 -0.064916 0.997306
0.950241 -0.307051 -0.0525437
0.309635 0.949476 0.051194
OpenCV result:
[0.03417001163639093, -0.06491612525262211, 0.9973055233913801;
-0.9502414121501213, 0.3070511298822651, 0.05254390804810754;
-0.3096347347112595, -0.9494764348419663, -0.05119404985032185]
尽管一个是float类型,一个是double类型,但是计算出来的左奇异向量有不同的符号。所以我的问题是:
- 这种符号差异真的很重要吗?
- 如何使它们相同?
【问题讨论】:
标签: c++ algorithm opencv math eigen