1) (100 points) Frequency domain noise filtering
You are given a noisy image (5_1.bmp) which is affected by noise. Figure 1 shows the
noisy image, magnitude and phase of its frequency components. The noise appears in the
frequency domain as the white specks highlighted in red.
(a) (b) (c)
Figure 1: (a) Noisy image (b) magnitude of noisy image’s frequency components (c) phase
of noisy image’s frequency components
Perform filtering in the frequency domain to remove the noise. Show the denoised image,
and the magnitude and phase components of its DFT coefficients (similar to those in Figure
i) You may use this code to find magnitude and phase of an image’s frequency
ii) Plot the magnitude and phase of the given noisy image. Use the “data cursor” tool in the
Matlab Figure Window to identify the “abnormal” frequency components that are likely to
be noise (e.g., the white specks in Figure 1).
iii) In order to filter noise, set the above identified frequency components to zero. Due to
the symmetrical properties of the DFT, you need to set all the four noise frequency
components to 0.
im = imread(‘5_1.bmp’);
im = double(im);
%% apply FFT
f = fftshift(fft2(im));
magnitudeF = log(abs(f));
magnitudeF = mat2gray(magnitudeF);
angleF = angle(f);