I=imread(\'cameraman.tif\');
figure(1),imshow(I)
I1=im2double(I);
[U,S,V]=svd(I1);
figure(2),imshow(I1)
for j=1:90
I2=U(:,1:j)*S(1:j,1:j)*V(:,1:j)\';
end
figure(
I think you're missing the point of SVD decomposition. the size of the reconstructed image will remain the same re the number of pixels. what SVD does is allow you to store/transmit less information... in other words, in your case, you can transmit 256^2 doubles or (256*j)+j+(256*j). for j of 90 it's 46170 (vs 65536)