我想验证单应矩阵会产生良好的效果,而this answer
有答案 - 但是,我不知道如何实现答案。
那么有人可以推荐我如何使用OpenCV来计算SVD并验证第一个到最后一个奇异值的比例是否合理?
答案 0 :(得分:5)
有几种方法可以在OpenCV中计算SVD:
cv::SVD homographySVD(homography, cv::SVD::FULL_UV); // constructor
// or:
homographySVD(newHomography, cv::SVD::FULL_UV); // operator ()
homographySVD.w.at<double>(0, 0); // access the first singular value
// alternatives:
cv::SVD::compute(homography, w); // compute just the singular values
cv::eigen(homography, w);
答案 1 :(得分:1)
您可以使用numpy
在python中计算SVD。
例如:
import numpy as np
U, s, V = np.linalg.svd(a, full_matrices=True)
将维a
的矩阵M x N
视为u * np.diag(s) * v
,其中u
和v
是单一的,s
是1-数组a
的奇异值。
可以找到更多here。