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