Image Transforms and Image
Enhancement in Frequency Domain
Lecture 5, Feb 25th, 2008
Lexing Xie
EE4830 Digital Image Processing
[Link]
thanks to G&W website, Mani Thomas, Min Wu and Wade Trappe for slide materials
HW clarification
HW#2 problem 1
Show: f - r2 f ¼ A f – B blur(f)
A and B are constants that do not matter, it is up to you
to find appropriate values of A and B, as well as the
appropriate version of the blur function.
Recap for lecture 4
roadmap
2D-DFT definitions and intuitions
DFT properties, applications
pros and cons
DCT
the return of DFT
Fourier transform: a continuous
signal can be represented as a
(countable) weighted sum of
sinusoids.
warm-up brainstorm
Why do we need image transform?
why transform?
Better image processing
Take into account long-range correlations in space
Conceptual insights in spatial-frequency information.
what it means to be “smooth, moderate change, fast change, …”
Fast computation: convolution vs. multiplication
Alternative representation and sensing
Obtain transformed data as measurement in radiology images
(medical and astrophysics), inverse transform to recover image
Efficient storage and transmission
?
Energy compaction
Pick a few “representatives” (basis)
Just store/send the “contribution” from each basis
outline
why transform
2D Fourier transform
a picture book for DFT and 2D-DFT
properties
implementation
applications
discrete cosine transform (DCT)
definition & visualization
Implementation
next lecture: transform of all flavors, unitary
transform, KLT, others …
1-D continuous FT
1D – FT
real(g(x)) imag(g(x))
1D – DFT of length N
=0
=7
x x
1-D DFT in as basis expansion
Forward transform
real(A) imag(A)
u=0
Inverse transform
basis
u=7
n n
1-D DFT in matrix notations
real(A) imag(A)
u=0
N=8
u=7
n n
1-D DFT of different lengths
real(A) imag(A)
n
u
N=32
N=8
N=16 N=64
performing 1D DFT
real-valued input
Note: the coefficients in x and y on this slide are only meant for illustration purposes, which are not numerically accurate.
another illustration of 1D-DFT
real-valued input
Note: the coefficients in x and y are not numerically accurate
from 1D to 2D
1D 2D
?
Computing 2D-DFT
DFT
IDFT
Discrete, 2-D Fourier & inverse Fourier transforms are implemented
in fft2 and ifft2, respectively
fftshift: Move origin (DC component) to image center for display
Example:
>> I = imread(‘[Link]’); % Load grayscale image
>> F = fftshift(fft2(I)); % Shifted transform
>> imshow(log(abs(F)),[]); % Show log magnitude
>> imshow(angle(F),[]); % Show phase angle
2-D Fourier basis
real imag
real( ) imag( )
2-D FT illustrated
real-valued
real
imag
notes about 2D-DFT
Output of the Fourier transform is a complex number
Decompose the complex number as the magnitude and phase
components
In Matlab: u = real(z), v = imag(z), r = abs(z), and
theta = angle(z)
Explaining 2D-DFT
fft2
ifft2
circular convolution and zero padding
zero padded filter and response
zero padded filter and response
observation 1: compacting energy
observation 2: amplitude vs. phase
Amplitude: relative prominence of sinusoids
Phase: relative displacement of sinusoids
another example: amplitude vs. phase
A = “Aron” P = “Phyllis”
FA = fft2(A) FP = fft2(P)
log(abs(FA)) log(abs(FP))
angle(FA) angle(FP)
ifft2(abs(FA), angle(FP)) ifft2(abs(FP), angle(FA))
Adpated from [Link]
fast implementation of 2-D DFT
2 Dimensional DFT is separable
1-D DFT
of f(m,n)
w.r.t n
1-D DFT
of F(m,v)
w.r.t m
1D FFT: O(N¢log2N)
2D DFT naïve implementation: O(N4)
2D DFT as 1D FFT for each row and then for
each column
Implement IDFT as DFT
DFT2
IDFT2
Properties of 2D-DFT
duality result
outline
why transform
2D Fourier transform
a picture book for DFT and 2D-DFT
properties
implementation
applications
discrete cosine transform (DCT)
definition & visualization
implementation
DFT application #1: fast Convolution
? ?
O(N2)
Spatial filtering
f(x.y)*h(x.y)
?
DFT application #1: fast convolution
O(N2¢log2N) O(N2) O(N2¢log2N)
Spatial filtering
f(x.y)*h(x.y)
O(N4)
DFT application #2: feature correlation
Find letter “a” in the following image
bw = imread('[Link]'); a = imread(‘letter_a.png');
% Convolution is equivalent to correlation if you rotate the
convolution kernel by 180deg
C = real(ifft2(fft2(bw) .*fft2(rot90(a,2),256,256)));
% Use a threshold that's a little less than max.
% Display showing pixels over threshold.
thresh = .9*max(C(:)); figure, imshow(C > thresh)
from Matlab image processing demos.
DFT application #3: image filters
Zoology of image filters
Smoothing / Sharpening / Others
Support in time vs. support in frequency
c.f. “FIR / IIR”
Definition: spatial domain/frequency domain
Separable / Non-separable
smoothing filters: ideal low-pass
butterworth filters
Gaussian filters
low-pass filter examples
smoothing filter application 1
text enhancement
smoothing filter application 2
beautify a photo
high-pass filters
sobel operator in frequency domain
Question:
Sobel vs. other high-pass
filters?
Spatial vs frequency
domain implementation?
high-pass filter examples
outline
why transform
2D Fourier transform
a picture book for DFT and 2D-DFT
properties
implementation
applications in enhancement, correlation
discrete cosine transform (DCT)
definition & visualization
implementation
Is DFT a Good (enough) Transform?
Theory
Implementation
Application
The Desirables for Image Transforms
Theory DFT ???
Inverse transform available X
Energy conservation (Parsevell) X
Good for compacting energy ?
Orthonormal, complete basis
(sort of) shift- and rotation invariant
X
Implementation X
Real-valued x
Separable X
Fast to compute w. butterfly-like structure X
Same implementation for forward and
inverse transform X
Application
Useful for image enhancement X
Capture perceptually meaningful structures X
in images
DFT vs. DCT
1D-DCT 1D-DFT
a real(a) imag(a)
u=0 u=0
u=7 u=7
n=7
1-D Discrete Cosine Transform (DCT)
N 1
( 2n 1) k
Z ( k )
n 0
z ( n ) ( k ) cos
2N
z ( n)
N 1
( 2n 1) k
k 0
Z ( k ) ( k ) cos
2N
1 2
(0) , (k )
N N
Transform matrix A
a(k,n) = (0) for k=0
a(k,n) = (k) cos[(2n+1)/2N] for k>0
A is real and orthogonal
rows of A form orthonormal basis
A is not symmetric!
DCT is not the real part of unitary DFT!
1-D DCT
1.0 1.0 100 100
0.0 0.0 0 0
-1.0 -1.0 -100 u=0 -100 u=0 to 4
z(n)
1.0 1.0 100 100
n 0.0 0.0 0 0
Original signal -1.0 -1.0 -100 u=0 to 1 -100 u=0 to 5
1.0 1.0 100 100
0.0 0.0 0 0
-1.0 -1.0 -100 u=0 to 2 -100 u=0 to 6
Z(k)
1.0 1.0 100 100
k 0.0 0.0 0 0
-1.0 -1.0 -100 u=0 to 3 -100 u=0 to 7
Transform coeff.
Basis vectors Reconstructions
DFT and DCT in Matrix Notations
Matrix notation for 1D transform
1D-DCT 1D-DFT
N=32 A real(A) imag(A)
From 1D-DCT to 2D-DCT
u=0
u=7
n=7
Rows of A form a set of orthonormal basis
A is not symmetric!
DCT is not the real part of unitary DFT!
basis images: DFT (real) vs DCT
Periodicity Implied by DFT and DCT
DFT and DCT on Lena
DFT2 DCT2
Shift low-freq
to the center
Assume periodic and zero-padded … Assume reflection …
Using FFT to implement fast DCT
Reorder odd and even elements
~z ( n) z ( 2n ) N
~ for 0 n 1
z ( N n 1) z ( 2n 1) 2
Split the DCT sum into odd and even terms
N / 21 ( 4n 1) k N / 2 1 ( 4n 3) k
Z ( k ) ( k ) z ( 2n) cos
z ( 2 n 1) cos
n 0 2N n 0 2N
N / 2 1 ~ ( 4n 1) k N / 2 1 ~ ( 4n 3) k
( k ) z ( n) cos z ( N n 1) cos
n 0 2N n 0 2N
N / 2 1 ~ ( 4n 1) k N 1
( 4 N 4n'1) k
( k ) z ( n) cos
~
z ( n ' ) cos
n 0 2 N n ' N / 2 2 N
N 1
( 4n 1) k N 1
j 2nk / N
( k ) z ( n) cos
~
Re ( k ) e jk / 2 N
~
z ( n ) e
n 0 2N n 0
Re ( k )e jk / 2 N DFT ~ z ( n) N
The Desirables for Image Transforms
Theory DFT DCT ???
Inverse transform available X X
Energy conservation (Parsevell) X X
Good for compacting energy ? ?
Orthonormal, complete basis
(sort of) shift- and rotation invariant
X X
Implementation X X
Real-valued x X
Separable X X
Fast to compute w. butterfly-like structure X X
Same implementation for forward and
inverse transform X X
Application
Useful for image enhancement X
Capture perceptually meaningful structures X
in images
Summary of Lecture 5
Why we need image transform
DFT revisited
Definitions, properties, observations, implementations, applications
What do we need for a transform
DCT
Coming in Lecture 6:
Unitary transforms, KL transform, DCT
examples and optimality for DCT and KLT, other transform flavors,
Wavelets, Applications
Readings: G&W chapter 4, chapter 5 of Jain has been posted on
Courseworks
“Transforms” that do not belong to lectures 5-6:
Rodon transform, Hough transform, …