function filtered_photo = fft_filter(photo, radius) % fft_filter.m % FFT filter % filtered_photo = fft_filter(photo, radius) % hipass-filters the given photo with a circular % mask in the frequency domain of the given radius. % 1999-02-28:DAV: David Cary started. figure image(photo) zoom on colormap(gray(256)) title('original') drawnow offt = fft2(photo); figure imagesc(log(abs(fftshift(offt))+1) ) zoom on colormap(gray(256)) title('fft2(original)') drawnow mask_part = circle(2*radius+1); mask = zeros(size(photo)); y = -radius:radius; x = -radius:radius; [height,width] = size(photo); mask(floor(height/2) + y, floor(width/2) + x) = mask_part; mask = 1 - mask; figure cutout = fftshift(mask) .* offt; imagesc(log(abs(fftshift(cutout))+1) ) colormap(gray(256)) drawnow figure filtered_photo = abs( ifft2(cutout) ); imagesc(filtered_photo) colormap(gray(256)) drawnow % end fft_filter.m