Professional Documents
Culture Documents
X1org = im2double(IMG1);
XSize = size(X1org);
figure(1);
colormap(gray);
imagesc(X1org);
title (sprintf('Original Image: %s, Size: %i x %i', F, XSize(1), XSize(2)));
% mean
m = mean(mean(X1org))
X1org = X1org - m;
%title ('Original');
NumBlocks = XSize(1)/BlockSize;
c = (j-1) * BlockSize + 1;
TB = X1org(r:r+BlockSize-1, c: c+BlockSize-1);
[TU,TS,TV] = svd(TB);
%U(i, j, :, :) = TU;
%S(i, j, :, :) = TS;
%V(i, j, :, :) = TV;
SV = diag(TS); % a n by 1 vector
TCS(1) = SV(1);
for k = 2: s(1)
TCS(k) = TCS(k-1) + SV(k);
end
%CS(i,j,:,:) = TCS;
%
% reconstruction, de-compression
%
RUsed(i,j) = rr;
PRUsed(i,j) = rr/s(1);
%disp(sprintf('rank used = %i', rr))
CI(r:r+BlockSize-1, c: c+BlockSize-1) = X;
end
end
disp('--------------')
disp(sprintf('Rnaks used for percentage = %i:\n', Percentage))
RUsed
avg = sum(sum(RUsed))/(NumBlocks*NumBlocks);
disp(sprintf('Average ranks used = %f\n\n', avg))
%display
figure(2)
subplot(2,3, pl);
colormap(gray);
imagesc(CI);
title(sprintf('Percentage = %i', Percentage))
X1org = X1org + m;
figure(4)
subplot(2,3, pl);
colormap(gray);
imagesc(abs(Diff));
title(sprintf('Abs. Difference for %i', Percentage))
%figure(5)
%subplot(2,3,pl)
%bar(RUsed)
%title('Ranks used for each sub-block');
%axis([0 NumBlocks+1 0 s(1)]);
%figure(6)
%subplot(2,3,pl)
%bar(PRUsed)
%title('Percentage of the ranks used');
%axis([0 NumBlocks+1 0 1]);
PSNR = 10 * log10(255^2/mse1)
end