| Loss | Image | Transform |
|---|---|---|
| 0% | ![]() | ![]() |
| 10% | ![]() | ![]() |
| 25% | ![]() | ![]() |
| 50% | ![]() | ![]() |
| 75% | ![]() | ![]() |
| 90% | ![]() | ![]() |
» g = imread('cameraman.tif');
» remove(g);
function remove(g)
% REMOVE
% remove(g) removes varying percentage of Fourier coefficients from
% image and generates sequence of inverse-transformed images.
gf = fft2(g);
siz = prod(size(g));
% inverse transform
ginv = abs(ifft2(gf));
imwrite(ginv/max(ginv(:)),'remove_00.jpg');
imwrite(logim(abs(fftshift(gf)),4),'freq_00.jpg');
% permute the elements (except the DC term, which is the first element)
list = randperm(siz-1)+1;
remove = [ 0.10, 0.25, 0.50, 0.75, 0.90 ];
for idx = 1:length(remove)
gf(list(1:floor(siz*remove(idx))))=0;
ginv = abs(ifft2(gf));
str = sprintf('remove_%d.jpg',100*remove(idx));
imwrite(ginv/max(ginv(:)),str);
str = sprintf('freq_%d.jpg',100*remove(idx));
imwrite(logim(abs(fftshift(gf)),4),str);
end
Maintained by John Loomis, last updated 15 March 2000