Upload
mehmet-mehmet
View
129
Download
15
Embed Size (px)
Citation preview
EASTERN MEDITERRANEAN UNIVERSITY
Electrical and Electronic Engineering Department
EE 583 (Digital Image Processing)
Home Work IV
PREPARED BY:
LEONARDO O. IHEME (106054)
SUBMITTED TO:
Assoc. Prof. Dr. Hasan Demirel
27th March, 2011
Frequency Domain Filtering
Frequency filtering is based on the Fourier Transform. The operator usually takes an image
and a filter function in the Fourier domain. This image is then multiplied with the filter
function in a pixel-by-pixel fashion:
( ) ( ) ( )
where ( ) is the input image in the Fourier domain, ( ) the filter function and G(k,l)
is the filtered image. To obtain the resulting image in the spatial domain, ( ) has to be re-
transformed using the inverse Fourier Transform. Since the multiplication in the Fourier
space is identical to convolution in the spatial domain, all frequency filters can in theory be
implemented as a spatial filter. However, in practice, the Fourier domain filter function can
only be approximated by the filtering kernel in spatial domain.
Frequency Domain Bandpass Filters
A bandpass attenuates very low and very high frequencies, but retains a middle range band of
frequencies. Bandpass filtering can be used to enhance edges (suppressing low frequencies)
while reducing the noise at the same time (attenuating high frequencies). We obtain the filter
function of a bandpass by multiplying the filter functions of a low pass and of a high pass in
the frequency domain, where the cut-off frequency of the low pass is higher than that of the
high pass. Therefore in theory, one can derive a bandpass filter function if the low pass filter
function is available.
Bandpass filtering is attractive but there is always a trade-off between blurring and noise: low
pass reduces noise but accentuates blurring, high pass reduces blurring but accentuates noise
Ideal Bandpass Filter
The ideal bandpass filter passes only frequencies within the pass band and gives an output in
the spatial domain that is in most cases blurred and/or ringed. It is the easiest bandpass filter
to simulate but its vertical edges and sharp corners are not realizable in the physical world.
An ideal bandpass filter with a frequency range of is defined as follows:
( ) { ( )
The following example demonstrates the effect of applying an ideal bandpass filter with cut
off frequencies of 30 and 120 to a grey scale 256×256 image.
Figure 1a: Original Image Figure 1b: Filtered Image
Figure 1c: Frequency Spectrum of
Image
Figure 1d: Frequency domain
filter function
As expected, the ideal filter has the effect of ringing and blurring on the original image. The
associated Matlab code is given below:
% Ideal Bandpass Filter clc clear all close all ima=imread('grass2.jpg'); ima = double(ima); figure subplot(221) imshow(ima,[]); title('Original image'); imafft = fftshift(fft2(fftshift(ima))); % Fourier Spectrum of Image imafft2 = fft2(ima); imafft3 = fftshift(imafft2);
s = size(ima); ma=max(max((imafft))); maxr = 0.5*sqrt(s(1)^2+s(2)^2); cutoff1 = maxr*30; cutoff2 = maxr*120; c=1; for i = 1 : s(1) for j = 1 : s(2) r = sqrt((i-1-s(1)/2)^2+(j-1-s(2)/2)^2); if ( r < 30) z(i,j) = 0; else if ( r > 120) z(i,j) = 0; else z(i,j) =255; end end end end
% Plots subplot(222) imafft=imafft.*z/255; ima_out = fftshift(ifft2(fftshift(imafft))); ima_out =ima_out-ima; fftshow(ima_out,'abs'); title('Filtered image (Ideal)'); subplot(223) fftshow(imafft3, 'log'); title('Fourier Spectrum of Image') subplot(224) fftshow(z,'log'); title('Filtered');
Butterworth Bandpass Filter
This filter can be derived mathematically by multiplying the transfer functions of a a low and
high pass filter. The low pass filter will have the higher cut off frequency.
( )
( ) ⁄
( )
( ) ⁄
( ) ( ) ( )
where are the cut frequencies of the low and high pass filters respectively; is
the order of the filter and ( ) is the distance from the origin.
The Butterworth filter has a “smooth” transfer function without any discontinuity or clear cut
off frequency. The range of frequencies that the filter allows is largely dependent on the order
of the filter. In the selection of there has to be a compromise between the demands of the
frequency domain (sharp cutoff) and the spatial domain (rapid decay).
The example presented in this section demonstrates the effect of applying a fourth order
Butterworth filter with cut off frequencies 30 and 120 to a 256×256 grey scale image.
Figure 2a: Original Image Figure 2b: Filtered Image
Figure 2c: Frequency domain filter function
The result shows that the ringing and blurring effect that was observed with the ideal banpass
filter does not exist for the Butterworth filter. The Matlab code is presented below:
% Bandpass Butterworth Filter clear all; close all; clc micro = imread('grass2.jpg'); micro = double(micro); [nx ny] = size(micro); nx ny u = micro; micro = uint8(u); imwrite(micro, 'grass5.jpg'); fftu = fft2(u,2*nx-1,2*ny-1); fftu = fftshift(fftu);
subplot(2,2,1) imshow(micro,[]);
subplot(2,2,2) fftshow(fftu,'log') % Initialize filter. filter1 = ones(2*nx-1,2*ny-1); filter2 = ones(2*nx-1,2*ny-1); filter3 = ones(2*nx-1,2*ny-1);
n = 4; for i = 1:2*nx-1 for j =1:2*ny-1 dist = ((i-(nx+1))^2 + (j-(ny+1))^2)^.5; % Use Butterworth filter. filter1(i,j)= 1/(1 + (dist/120)^(2*n)); filter2(i,j) = 1/(1 + (dist/30)^(2*n)); filter3(i,j)= 1.0 - filter2(i,j); filter3(i,j) = filter1(i,j).*filter3(i,j); end end
% Update image with passed frequencies. fil_micro = fftu + filter3.*fftu;
subplot(2,2,3) fftshow(filter3,'log') fil_micro = ifftshift(fil_micro); fil_micro = ifft2(fil_micro,2*nx-1,2*ny-1); fil_micro = real(fil_micro(1:nx,1:ny)); fil_micro = uint8(fil_micro);
subplot(2,2,4) imshow(fil_micro,[])
Gaussian Bandpass Filter
The Gaussian filter out-performs the previously discussed filter types because when a
Gaussian is transformed between the frequency and spatial domains, it remains a Gaussian;
and therefore does not incur the ringing effect in the spatial domain of the filtered image.
Again the derivation of a Gaussian bandpass filter starts from the lowpass filter
( ) ( )
( ) ( )
( ) ( ) ( )
where are the cut frequencies of the low and high pass filters respectively;
( ) is the distance from the origin.
The example below shows that the Gaussian bandpass filter is the best among the three
discussed filters
Figure 3a: Original Image Figure 3b: Filtered Image
Figure 3c: Frequency domain filter function
The Matlab code is presented below
% Gaussian Bandpass Filter clear all; close all; clc micro = imread('grass2.jpg'); micro = double(micro); [nx ny] = size(micro); nx ny u = micro; micro = uint8(u); imwrite(micro, 'grass5.jpg'); fftu = fft2(u,2*nx-1,2*ny-1); fftu = fftshift(fftu);
subplot(2,2,1) imshow(micro,[]);
subplot(2,2,2) fftshow(fftu,'log') % Initialize filter. filter1 = ones(2*nx-1,2*ny-1); filter2 = ones(2*nx-1,2*ny-1); filter3 = ones(2*nx-1,2*ny-1);
n = 4; for i = 1:2*nx-1 for j =1:2*ny-1 dist = ((i-(nx+1))^2 + (j-(ny+1))^2)^.5; % Use Gaussian filter. filter1(i,j) = exp(-dist^2/(2*120^2)); filter2(i,j) = exp(-dist^2/(2*30^2)); filter3(i,j) = 1.0 - filter2(i,j); filter3(i,j) = filter1(i,j).*filter3(i,j); end end % Update image with passed frequencies fil_micro = fftu + filter3.*fftu;
subplot(2,2,3) fftshow(filter3,'log') fil_micro = ifftshift(fil_micro); fil_micro = ifft2(fil_micro,2*nx-1,2*ny-1); fil_micro = real(fil_micro(1:nx,1:ny)); fil_micro = uint8(fil_micro);
subplot(2,2,4) imshow(fil_micro,[])
Conclusion
From the human perspective, the Gaussian filter would be the most appropriate filter for
filtering. Determining which filter to use is dependent on the application so desired. The
figure below shows the different filters and the result of their application to the grey scale
image.
Figure 4a: Ideal Bandpass
Filter
Figure 4b: Butterworth
Bandpass Filter
Figure 4c: Gaussian
Bandpass Filter
Figure 4d: Original Image
Figure 4e: Ideal Filtered Figure 4f: Butterworth
Filtered Figure 4g: Gaussian Filtered
References
[1] McAndrew A., “An Introduction to Digital Image Processing with Matlab Notes for
SCM2511 Image Processing 1”, School of Computer Science and Mathematics,
Victoria University of Technology.
[2] Demirel H., “Digital Image Processing Notes (Lecture 4)” Electrical and Electronic
Engineering, Eastern Mediterranean University, Spring 2010-2011.
[3] Filters (Frequency). (n.d.). Medical Image Processing, Analysis and Visualization.
Retrieved March 26, 2011, from
http://mipav.cit.nih.gov/documentation/HTML%20Algorithms/FiltersFrequency.html
[4] domain., t. f. (n.d.). Digital Filters - Frequency Filters. Informatics Homepages
Server. Retrieved March 26, 2011, from
http://homepages.inf.ed.ac.uk/rbf/HIPR2/freqfilt.htm
[5] Anbajafari S., “Bandpass Filter for Image Processing”, Mathworks file exchange, 30
Nov 2008.