Upload
rufina
View
93
Download
1
Embed Size (px)
DESCRIPTION
Chapter 7: The Fourier Transform 7.1 Introduction. The Fourier transform allows us to perform tasks that would be impossible to perform any other way It is more efficient to use the Fourier transform than a spatial filter for a large filter - PowerPoint PPT Presentation
Citation preview
1
Chapter 7: The Fourier Transform7.1 Introduction
• The Fourier transform allows us to perform tasks that would be impossible to perform any other way
• It is more efficient to use the Fourier transform than a spatial filter for a large filter
• The Fourier transform also allows us to isolate and process particular image frequencies
2
7.2 Background
3
FIGURE 7.2• A periodic function may be written as the sum of sines and
cosines of varying amplitudes and frequencies
4
7.2 Background
These are the equations for the Fourier series expansion of f (x), and they can be expressed in complex form
Fourier series
5
7.2 Background If the function is nonperiodic, we can obtain similar
results by letting T → ∞, in which case
Fourier transform pair
6
7.3 The One-Dimensional Discrete Fourier Transform
7
7.3 The One-Dimensional Discrete Fourier Transform
• Definition of the One-Dimensional DFT
This definition can be expressed as a matrix multiplication
where F is an N × N matrix defined by
8
7.3 The One-Dimensional Discrete Fourier Transform
Given N, we shall define
e.g. suppose f = [1, 2, 3, 4] so that N = 4. Then
9
7.3 The One-Dimensional Discrete Fourier Transform
10
• THE INVERSE DFT
If you compare Equation (7.3) with Equation 7.2 you will see that there are really only two differences:1. There is no scaling factor 1/N
2. The sign inside the exponential function has been changed to positive.
3. The index of the sum is u, instead of x
7.3 The One-Dimensional Discrete Fourier Transform
11
7.3 The One-Dimensional Discrete Fourier Transform
12
7.3 The One-Dimensional Discrete Fourier Transform
13
7.4 Properties of the One-Dimensional DFT
• LINEARITY This is a direct consequence of the definition of the DFT as
a matrix product Suppose f and g are two vectors of equal length, and p and q are scalars, with h = pf + qg If F, G, and H are the DFT’s of f, g, and h, respectively, we
have• SHIFTING
Suppose we multiply each element xn of a vector x by (−1)n. In other words, we change the sign of every second element
Let the resulting vector be denoted x’. The DFT X’ of x’ is equal to the DFT X of x with the swapping of the left and right halves
14
7.4 Properties of the One-Dimensional DFT
e.g.
15
7.4 Properties of the One-Dimensional DFT
Notice that the first four elements of X are the last four elements of X1 and vice versa
16
• SCALINGwhere k is a scalar and F= f If you make the function wider in the x-direction, it's
spectrum will become smaller in the x-direction, and vice versa
Amplitude will also be changed
7.4 Properties of the One-Dimensional DFT
F
• CONJUGATE SYMMETRY• CONVOLUTION
17
7.4 Properties of the One-Dimensional DFT
• THE FAST FOURIER TRANSFORM
2n
18
7.5 The Two-Dimensional DFT
• The 2-D Fourier transform rewrites the original matrix in terms of sums of corrugations
19
7.5.1 Some Properties of the Two-Dimensional Fourier Transform
• SIMILARITY
• THE DFT AS A SPATIAL FILTER
• SEPARABILITY
20
7.5.1 Some Properties of the Two-Dimensional Fourier Transform
• LINEARITY• THE CONVOLUTION THEOREM
Suppose we wish to convolve an image M with a spatial filter S• Pad S with zeroes so that it is the same size as M; denote
this padded result by S’• Form the DFTs of both M and S’ to obtain (M)and (S’)3. Form the element-by-element product of these two
transforms:4. Take the inverse transform of the result:
Put simply, the convolution theorem states or
21
7.5.1 Some Properties of the Two-Dimensional Fourier Transform
• THE DC COEFFICIENT
• SHIFTINGDC coefficientDC coefficient
DC coefficientDC coefficient
22
7.5.1 Some Properties of the Two-Dimensional Fourier Transform
• CONJUGATE SYMMETRY
• DISPLAYING YRANSFORMS
fft, which takes the DFT of a vector,ifft, which takes the inverse DFT of a vector,fft2, which takes the DFT of a matrix,ifft2, which takes the inverse DFT of a matrix, andfftshift, which shifts a transform
23
7.6 Fourier Transforms in MATLAB
e.g.
Note that the DC coefficient is indeed the sum of all the matrix values
24
7.6 Fourier Transforms in MATLAB
e.g.
25
7.6 Fourier Transforms in MATLAB
e.g.
26
7.7 Fourier Transforms of Images
27
FIGURE 7.10
28
FIGURE 7.11
29
FIGURE 7.12
30
FIGURE 7.13• EXAMPLE 7.7.2
31
FIGURE 7.14• EXAMPLE 7.7.3
32
FIGURE 7.15• EXAMPLE 7.7.4
33
7.7 Fourier Transforms of Images
34
7.8 Filtering in the Frequency Domain• Ideal Filtering
LOW-PASS FILTERING
35
FIGURE 7.16
36
FIGURE 7.17
D = 15
37
7.8 Filtering in the Frequency Domain
>> cfl = cf.*b>> cfli = ifft2(cfl);>> figure, fftshow(cfli, ’abs’)
38
FIGURE 7.18D = 5 D = 30
39
7.8 Filtering in the Frequency Domain
HIGH-PASS FILTERING
40
FIGURE 7.19
41
FIGURE 7.20
42
7.8.2 Butterworth Filtering
Ideal filtering simply cuts off the Fourier transform at some distance from the center
It has the disadvantage of introducing unwanted artifacts (ringing) into the result
One way of avoiding these artifacts is to use as a filter matrix, a circle with a cutoff that is less sharp
43
FIGURE 7.21
44
FIGURE 7.22 & 7.23
45
FIGURE 7.24
46
FIGURE 7.25
47
FIGURE 7.26
>> cfbli = ifft2(cfbl);>> figure, fftshow(cfbli, ’abs’)
>> bl = lbutter(c,15,1);>> cfbl = cf.*bl;>> figure, fftshow(cfbl, ’log’);
48
FIGURE 7.27
49
7.8.3 Gaussian Filtering
A wider function, with a large standard deviation, will have a low maximum
50
FIGURE 7.28
51
FIGURE 7.29
52
7.9 Homomorphic Filtering
where f(x, y) is intensity, i(x, y) is the illumination and r(x, y) is the reflectance
53
7.9 Homomorphic Filtering
54
FIGURE 7.32function res=homfilt(im,cutoff,order,lowgain,highgain) % HOMFILT(IMAGE,FILTER) applies homomorphic filtering % to the image IMAGE% with the given parameters u=im2uint8(im/256); u(find(u==0))=1;l=log(double(u));ft=fftshift(fft2(l));f=hb_butter(im,cutoff,order,lowgain,highgain);b=f.*ft;ib=abs(ifft2(b));res=exp(ib);
55
FIGURE 7.33>>i=imread(‘newborn.tif’);
>>r=[1:256]’*ones(1,256);
>>x=double(i).*(0.5+0.4*sin((r-32)/16));
>>imshow(i);figure;imshow(x/256);
56
FIGURE 7.34>>xh=homfilt(x,10,2,0.5,2);
>>imshow(xh/16);
57
FIGURE 7.35>> a=imread('arch.tif');>> figure;imshow(a);>> a1=a(:,:,1);>> figure;imshow(a1);
>> a2=double(a1);>> ah=homfilt(a2,128,2,0.5,2);>> figure;imshow(ah/14);