我对图像进行了块SVD分解,并存储了结果。现在,我需要根据这个结果进行重建。我发现没有几个例子都是用Matlab写的,这对我来说是个谜。我只需要一个公式,用它来重建我的图片,或者用C语言编写的例子。矩阵A等于U*S*V‘。如何看公式,例如,计算前五个奇异值(哪一行和列的乘积)?请提供类似C风格的索引公式。U和V‘是矩阵,S是向量(不是矩阵)。
发布于 2014-01-03 10:56:09
我不确定你的问题是否正确,但如果你只需要知道奇异值,它们就是中间矩阵S的对角线值,通常S是一个对角矩阵,它存储在这里作为向量。我的意思是,只有对角线是存储的,如果你在考虑矩阵计算的话,你应该把它想象成矩阵。
这些对角线值是你的奇异值,如果你需要第一个最大奇异值,只需取向量S的5个最大值。
引用维基百科
对角项Σi,I称为M的奇异值,U的M列和V的n列分别称为M的左奇异向量和右奇异向量。
在上面的引号中,西格玛是你的S,M是原始矩阵。
https://stackoverflow.com/questions/14011884
复制相似问题