任何人都可以给我一个关于如何使用Cimg为三维数组计算SVD的快速指南吗? 我只是希望得到数组的分解,以便将其压缩得很小,以加快进一步的处理速度。 我应该在哪里输入什么值,以及如何获得输出? 我一直在寻找,但仍然无法理解它是如何工作的。并没有完全理解SVD如何工作......只知道它可以用来解压缩矩阵。
同时我发现OpenCV和Eigen库也可以完成这项工作,如果更容易让我知道他们的步骤..
(替代我而不是SVD是PCA,我发现它的源/库但也不知道如何使用..)
谢谢!
答案 0 :(得分:0)
CImg<float> A(3,3); // A = U'*S*V
A.rand(0,1);
CImgList<float> USV = A.get_SVD(); //USV[0] = U and so forth