A=imread('mars.jpg'); A=mat2gray(A); subplot(1,2,1) imshow(A) title('immagine originale'); q=min(size(A)); k=max(size(A))/min(size(A)); disp(['q=',num2str(q)]); disp(['k=',num2str(k)]); pause % SVD [V,S,U]=svd(A); svs=diag(S); svs=svs(svs~=0); r=length(svs); L=1:r; L=L'; svs1=[svs(2:end);0]; tab=[L,svs1/svs(1),q./L*1/(1+1/k+1/(k*q))]; format short g disp(tab); format while 1 l=input('l='); %numero dei valori singolari if l==0 return end % compressione interval=1:l; AC=V(:,interval)*S(interval,interval)*U(:,interval)'; subplot(1,2,2) imshow(AC) title(['immagine compressa,',' l=',num2str(tab(l,1)),', \sigma_{l+1}/\sigma_1=',num2str(tab(l,2)),... ', C=',num2str(tab(l,3))]) end