MATLAB Answers


According to SVD technique A=U*S*V'. But when I apply SVD to my image, I am not able to retrieve my original image. Is that because S matrix is not taking the all the eigen values? Eventhough, I had to get a partially correct image?

[u,s,v]=svd(a); ap=u*s; a=ap*v;


Sign in to comment.

1 Answer

Answer by Roger Stafford on 20 Feb 2018
Edited by Roger Stafford on 20 Feb 2018
 Accepted Answer

You've left off the transpose operator at the last step:
It's a very small character, but it's all-important!
Round-off errors may cause tiny differences between your original a and the restored a. If the image pixels in the original a were all integers, just do a round on the result and that should restore it exactly.

  1 Comment

Sign in to comment.