Spectral Transforms and Image Processing software. Slides in PPT.

advertisement
Methods for Digital Image Processing
Digital Image Processing
Digital Image Characteristics
Spatial
Gray-level
Spectral
Histogram
DFT
DCT
Pre-Processing
Enhancement
Point Processing
Masking
Restoration
Filtering
Degradation Models
Inverse Filtering
Compression
Information Theory
Lossless
Lossy
LZW (gif)
Transform-based (jpeg)
Segmentation
Edge Detection
Description
Shape Descriptors
Texture
Morphology
Wiener Filtering
Basic ideas
of Image
Transforms
Spatial Frequency
or
Fourier Transform
Jean Baptiste Joseph Fourier
Why are Spatial Frequencies
important?
• Efficient data representation
• Provides a means for modeling and removing noise
• Physical processes are often best described in “frequency
domain”
• Provides a powerful means of image analysis
What is spatial frequency?
• Instead of describing a function (i.e., a shape) by a
series of positions
• It is described by a series of cosines
What is spatial frequency?
g(x) = A cos(x)
g(x)
2
A
x
What is spatial frequency?
g(x)
Period (L)
Wavelength ()
A cos(x  2/L)
g(x) = A cos(x  2/)
A cos(x  2f)
Frequency f=(1/ )
Amplitude (A)
Magnitude (A)
x
What is spatial frequency?
g(x) = A cos(x  2f)
g(x)
A
x
(1/f)
period
But what if cosine is shifted in phase?
g(x) = A cos(x  2f + )
g(x)
x

What is spatial frequency?
Let us take arbitrary g(x)
g(x) = A cos(x  2f + )
A=2 m
f = 0.5 m-1
= 0.25 = 45
g(x) = 2 cos(x  2(0.5) + 0.25)
2 cos(x   + 0.25)
x
0.00
0.25
0.50
0.75
1.00
1.25
1.50
1.75
2.00
We substitute values of A, f and 
g(x)
2 cos(0.25) = 0.707106...
2 cos(0.50) = 0.0
2 cos(0.75) = -0.707106...
2 cos(1.00) = -1.0
2 cos(1.25) = -0.707106…
2 cos(1.50) = 0
2 cos(1.75) = 0.707106...
2 cos(2.00) = 1.0
2 cos(2.25) = 0.707106...
We calculate discrete values of g(x) for
various values of x
What is spatial frequency?
g(x) = A cos(x  2f + )
g(x)
We calculate discrete values of g(x) for
various values of x
x
Now we take discrete values of Ai , fi
and i
gi(x) = Ai cos(x  2fi + i), i = 0,1,2,3,...
x
Now we substitute fi = i/N
gi(x) = Ai cos(x  2fi + i), i = 0,1,2,3,...
gi(x) = Ai cos(x  2i/N + i), i = 0,1,2,3,…,N-1
f=i/N
N = time interval
0
N
Values for various values of i
gi(x) = Ai cos(x  2i/N + i), i = 0,1,2,3,…,N-1
f=i/N
We
calculate
values of
function for
various
values of i
0
N
Substituting various values of i to the
formula we get various cosinusoides
gi(x) = Ai cos(x  2i/N + i), i = 0,1,2,3,…,N-1
A2
A1
A0
i=0
i=1
i=2
Changing N to N/2
gi(x) = Ai cos(x  2i/N + i), i = 0,1,2,3,…,N/2 - 1
If N equals the number of pixel in a line, then...
i=0
Lowest frequency
i=N/2 - 1
Highest frequency
What is spatial frequency?
gi(x) = Ai cos(x  2i/N + i), i = 0,1,2,3,…,N/2-1
If N equals the number of pixels in a line, then...
i=0
Lowest frequency
i=N/2-1
Highest frequency
What will happen if we take N/2?
gi(x) = Ai cos(x  2i/N + i), i = 0,1,2,3,…,N/2-1
If N equals the number of pixel in a line, then...
i=0
Lowest frequency
i=N/2
Too high
Redundant frequency
What is spatial frequency?
g(x) = A cos(x  2f + )
gi(x) = Ai cos(x  2i/N + i), i = 0,1,2,3,…,N/2-1
g ( x) 
i  N / 2 1
i  N / 2 1
 g x    A cosx  2 i / N   
i 0
i
i 0
i
i
We try to approximate a periodic
function with standard trivial
(orthogonal, base) functions
Low frequency
Medium frequency +
=
High frequency
+
We add values from component
functions point by point
+
=
+
g(x)
i=1
i=2
i=3
i=4
i=5
i=63
Example of periodic
function created by
summing standard
trivial functions
x
0
127
g(x)
i=1
i=2
i=3
i=4
i=5
i=10
x
0
Example of periodic
function created by
summing standard
trivial functions
127
64 terms
g(x)
10 terms
g(x)
Example of periodic
function created by
summing standard
trivial functions
Fourier Decomposition of a step function (64 terms)
g(x)
i=1
i=2
i=3
i=4
i=5
Example of periodic
function created byi=63
summing standard
trivial functions
x
0
127
Fourier Decomposition of a step function (11 terms)
g(x)
i=1
i=2
i=3
i=5
Example of periodic
function created by
summing standard
trivial functions
i=10
x
i=4
0
63
Main concept – summation of base
functions
Any function of x (any shape) that can
be represented by g(x) can also be
represented by the summation of cosine
functions
g ( x) 
i  N / 2 1
 A cosx  2 i / N   
i 0
i
i
Observe two
numbers for
every i
Information is not lost when we
change the domain
Spatial Domain
gi(x) = 1.3, 2.1, 1.4, 5.7, …., i=0,1,2…N-1
N pieces of information
Frequency Domain
g i ( x) 
i  N / 2 1
 A cosx  2 i / N   
i 0
i
i
N pieces of information
N/2 amplitudes (Ai, i=0,1,…,N/2-1) and
N/2 phases (i, i=0,1,…,N/2-1) and
Information
is
not
lost
when
we
What is spatial frequency?
change the domain
i  N / 2 1
gi(x) and
 A cosx  2 i / N   
i 0
i
i
Are equivalent
They contain the same amount of information
The sequence of amplitudes squared is
the SPECTRUM
EXAMPLE
Substitute values
A cos(x2i/N)
frequency (f) = i/N
wavelength (p) = N/I
i
0
1
16
256
N=512
f
0
1/512
1/32
1/2
p
infinite
512
32
2
Assuming N we get
this table which
relates frequency
and wavelength of
component functions
More examples
to give you some
intuition….
Fourier Transform Notation
• g(x) denotes an spatial domain function of real numbers
– (1.2, 0.0), (2.1, 0.0), (3.1,0.0), …
• G() denotes the Fourier transform
• G() is a symmetric complex function
(-3.1,0.0), (4.1, -2.1), (-3.1, 2.1), …(1.2,0.0) …, (-3.1,-2.1), (4.1, 2.1), (-3.1,0.0)
• G[g(x)] = G(f) is the Fourier transform of g(x)
• G-1() denotes the inverse Fourier transform
• G-1(G(f)) = g(x)
Power Spectrum and Phase Spectrum
complex
Complex
conjugate
• |G(f)|2 = G(f)G(f)* is the power spectrum of G(f)
– (-3.1,0.0), (4.1, -2.1), (-3.1, 2.1), … (1.2,0.0),…, (-3.1,-2.1), (4.1, 2.1)
– 9.61, 21.22, 14.02, …, 1.44,…, 14.02, 21.22
• tan-1[Im(G(f))/Re(G(f))] is the phase spectrum of G(f)
– 0.0, -27.12, 145.89, …, 0.0, -145.89, 27.12
1-D DFT and IDFT
Equal time intervals
• Discrete Domains
– Discrete Time:
– Discrete Frequency:
k = 0, 1, 2, 3, …………, N-1
n = 0, 1, 2, 3, …………, N-1
Equal frequency intervals
• Discrete Fourier Transform
X[n ] 
• Inverse DFT
x[k ] 
 2   nk

j
 
N 1
 x[k ] e  N  ;
k 0
n = 0, 1, 2,….., N-1
 2   nk
j
 
1 N 1
 X[n ] e  N  ; k = 0, 1, 2,….., N-1
N n 0
Fourier 2D Image Transform
Another formula for Two-Dimensional
Fourier
Image is
function
of x and y
A cos(x2i/N) B cos(y2j/M)
fx = u = i/N, fy = v =j/M
Now we need two
cosinusoids for each point,
one for x and one for y
Lines in the figure
correspond to real value 1
Now we have waves in two directions and
they have frequencies and amplitudes
Fourier Transform of a spot
Original image
Fourier Transform
Transform
Results
image
transform
spectrum
Two Dimensional Fast Fourier in Matlab
Filtering in Frequency
Domain
… will be covered in a separate
lecture on spectral
approaches…..
•H(u,v) for various
values of u and v
•These are standard
trivial functions to
compose the image
from
<
<
image
..and its
spectrum
Image and its
spectrum
Image and its
spectrum
Image and its
spectrum
Convolution Theorem
Let g(u,v) be the kernel
Let h(u,v) be the image
G(k,l) = DFT[g(u,v)]
H(k,l) = DFT[h(u,v)]
Then
This is a very important result
DFT1 G  H   g h

where means multiplication
and means convolution.
This means that an image can be filtered in the Spatial
Domain or the Frequency Domain.
Convolution Theorem
Let g(u,v) be the kernel
Let h(u,v) be the image
G(k,l) = DFT[g(u,v)]
H(k,l) = DFT[h(u,v)]
Instead of doing convolution
in spatial domain we can do multiplication
In frequency domain
Then
Multiplication in
spectral domain
Convolution in
spatial domain
DFT1 G  H   g h

where means multiplication
and means convolution.
v
Image
u
Spectrum
Noise and
its spectrum
Noise
filtering
Image
v
u
Spectrum
Spectrum log(X(k,l))
Image x(u,v)
l
v
u
k
Image of cow with noise
Spectrum log(X(k,l))
Image x(u,v)
l
v
u
k
white noise
white noise spectrum
kernel spectrum (low pass filter)
red noise
red noise spectrum
Filtering is done in
spectral domain. Can
be very complicated
Image Transforms
• Fast Fourier
– 2-D Discrete Fourier Transform
• Fast Cosine
– 2-D Discrete Cosine Transform
•
•
•
•
•
•
Radon Transform
Slant
Walsh, Hadamard, Paley, Karczmarz
Haar
Chrestenson
Reed-Muller
Discrete Cosine Transform
(DCT)
•Used in JPEG and MPEG
•Another Frequency
Transform, with Different Set
of Basis Functions
Discrete Cosine Transform in
Matlab
“Statistical” Filters
•Median Filter also eliminates noise
•preserves edges better than blurring
•Sorts values in a region and finds the
median
•region size and shape
•how define the median for color
values?
“Statistical” Filters Continued
•Minimum Filter (Thinning)
•Maximum Filter (Growing)
•“Pixellate” Functions
Now we can do this quickly in spectral
domain
•Thinning
•Growing
Pixellate Examples
DCT Features
Fringe Pattern
Can be used for face
recognition, tell my
story from Japan.
DCT Coefficients
DCT
Zonal Mask
1
1
Artificial
Neural
Network
(1,1)
(1,2)
Feature (2,1)
Vector (2,2)
.
.
.
2
3
4
5
2
3
4
5
Noise Removal
Transforms for Noise Removal
Image with Noise
Transform
Image reconstructed
Image Segmentation Recall:
Edge Detection
f(x,y)
Gradient
Mask
-1 -2 -1
0 0 0
1 2 1
fe(x,y)
-1 0 1
-2 0 2
-1 0 1
Now we do this in spectral domain!!
Image Moments
2-D continuous function f(x,y), the moment of order (p+q) is:
 
m pq    x p y q f ( x, y ) dx dy
 
p, q  0, 1, 2....
Central moment of order (p+q) is:
 
 pq    ( x  x) p ( y  y ) q f ( x, y ) dx dy
 
where
m10
m01
x
; y
m00
m00
Image Moments (contd.)
Normalized central moment of order (p+q) is:
 pq 
 pq

 00
;
where
pq

 1;
2
for p, q  2, 3,.....
A set of seven invariant moments can be derived from pq
Now we do this in spectral domain!!
Image Textures
Grass
Sand
Brick wall
Now we do this in spectral domain!!
The USC-SIPI Image Database
http://sipi.usc.edu/
Problems
• There is a lot of Fourier and Cosine Transform
software on the web, find one and apply it to
remove some kind of noise from robot images
from FAB building.
• Read about Walsh transform and think what kind
of advantages it may have over Fourier
• Read about Haar and Reed-Muller transform and
implement them. Experiment
Sources
• Howard Schultz, Umass
• Herculano De Biasi
• Shreekanth Mandayam
•
ECE Department, Rowan University
•
http://engineering.rowan.edu/~shreek/fall01/dip/
http://engineering.rowan.edu/~shreek/fall01/dip/lab4.html
Image Compression
Please visit the website
http://www.cs.sfu.ca/CourseCentral/365/li/material/notes/Chap4/Chap4.html
Download