You are on page 1of 73

Methods for Digital Image Processing

D ig ita l Im a g e P r o c e s s in g

D ig ita l Im a g e C h a r a c te r is tic s

S p a tia l S p e c tr a l

G r a y -le v e l H is to g r a m DFT DCT

P r e -P r o c e s s in g

Enhancem ent R e s to r a tio n

P o in t P r o c e s s in g M a s k in g F ilte r in g D e g r a d a tio n M o d e ls In v e r s e F ilte r in g W ie n e r F ilte r in g

C o m p r e s s io n

In fo r m a tio n T h e o r y L o s s le s s Lossy

L Z W (g if) T ra n s fo r m -b a s e d (jp e g )

S e g m e n ta tio n

E d g e D e te c tio n

D e s c rip tio n

S h a p e D e s c r ip to rs T e x tu re M o r p h o lo g y
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

x
What is spatial frequency?
A cos(x  2/L)
g(x) Period (L) g(x) = A cos(x  2/)
Wavelength () 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)

x
(1/f)

period
But what if cosine is shifted in phase?

g(x) = A cos(x  2f + )


g(x)


What is spatial frequency?
Let us take arbitrary g(x)
x g(x)
0.00 2 cos(0.25) = 0.707106...
0.25 2 cos(0.50) = 0.0
g(x) = A cos(x  2f + )
0.50 2 cos(0.75) = -0.707106...
0.75 2 cos(1.00) = -1.0
A=2 m 1.00 2 cos(1.25) = -0.707106…
f = 0.5 m-1 1.25 2 cos(1.50) = 0
= 0.25 = 45 1.50 2 cos(1.75) = 0.707106...
1.75 2 cos(2.00) = 1.0
g(x) = 2 cos(x  2(0.5) + 0.25)
2.00 2 cos(2.25) = 0.707106...
2 cos(x   + 0.25)

We calculate discrete values of g(x) for various


values of x
We substitute values of A, f and 
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

We calculate f=i/N
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

A0 A1

i=1 i=2
i=0
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 i=N/2 - 1
Lowest frequency 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 i=N/2-1
Lowest frequency 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 i=N/2
Lowest frequency 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

i  N / 2 1 i  N / 2 1
g ( x)   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
x
Example of periodic 0 127
function created by
summing standard trivial
functions
g(x)
i=1

i=2

i=3

i=4

i=5

i=10
x
0 127
Example of periodic
function created by
summing standard trivial
functions
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 by i=63 x
summing standard trivial 0 127
functions
Fourier Decomposition of a step function (11 terms)

g(x)

i=1

i=2

i=3
Example of periodic
i=4 function created by
summing standard trivial
i=5 functions

i=10 x
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
i  N / 2 1
g ( x)   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
i  N / 2 1
g i ( x)   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
What is spatial frequency? we
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
Assuming N we get
N=512 this table which relates
i f p frequency and
0 0 infinite wavelength of
1 1/512 512 component functions
16 1/32 32
256 1/2 2
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
• Discrete Domains Equal time intervals
– Discrete Time: k = 0, 1, 2, 3, …………, N-1
– Discrete Frequency: n = 0, 1, 2, 3, …………, N-1

• Discrete Fourier Transform


Equal frequency intervals

• Inverse DFT

 j 2  nk
N 1  
X[n ]   x[k ] e  N  ; n = 0, 1, 2,….., N-1
k 0

 2 
1 N 1 j  nk
x[k ]   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 A cos(x2i/N) B cos(y2j/M)
function
of x and y
fx = u = i/N, fy = v =j/M

Lines in the figure correspond


Now we need two cosinusoids
to real value 1
for each point, one for x and
one for y
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
This is a very important result
G(k,l) = DFT[g(u,v)]
H(k,l) = DFT[h(u,v)]

Then
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 Instead of doing convolution
G(k,l) = DFT[g(u,v)] in spatial domain we can do multiplication
H(k,l) = DFT[h(u,v)] In frequency domain

Then

Multiplication in
Convolution in
spectral domain
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 Spectrum

u
Image x(u,v) Spectrum log(X(k,l))

v l

u
k
Image of cow with noise

Image x(u,v) Spectrum log(X(k,l))

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
Can be used for face
recognition, tell my story
Fringe Pattern DCT Coefficients
from Japan.
DCT Zonal Mask
1 2 3 4 5

(1,1)
(1,2) 2
Artificial Feature (2,1)
Neural Vector (2,2) 3
Network .
. 4
.
5
Noise Removal
Transforms for Noise Removal

Image with Noise Transform Image reconstructed


Image Segmentation Recall:
Edge Detection

f(x,y) Gradient fe(x,y)


Mask

-1 -2 -1 -1 0 1
0 0 0 -2 0 2
1 2 1 -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

You might also like