lect5 v2

60
Image Transforms and Image Enhancement in Frequency Domain Lecture 5, Feb 25 th , 2008 Lexing Xie thanks to G&W website, Mani Thomas, Min Wu and Wade Trappe for slide materials EE4830 Digital Image Processing http://www.ee.columbia.edu/~xlx/ ee4830/

Upload: senthilnathan-subramaniyam

Post on 23-Jun-2015

194 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Lect5 v2

Image Transforms and Image Enhancement in Frequency Domain

Lecture 5, Feb 25th, 2008

Lexing Xie

thanks to G&W website, Mani Thomas, Min Wu and Wade Trappe for slide materials

EE4830 Digital Image Processing http://www.ee.columbia.edu/~xlx/ee4830/

Page 2: Lect5 v2

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

Page 3: Lect5 v2

roadmap

2D-DFT definitions and intuitions DFT properties, applications pros and cons DCT

Page 4: Lect5 v2

the return of DFT

Fourier transform: a continuous signal can be represented as a (countable) weighted sum of sinusoids.

Page 5: Lect5 v2

warm-up brainstorm

Why do we need image transform?

Page 6: Lect5 v2

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

?

Page 7: Lect5 v2

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 …

Page 8: Lect5 v2

1-D continuous FT

real(g(x)) imag(g(x))

1D – FT

1D – DFT of length N

x

=0

=7

x

Page 9: Lect5 v2

1-D DFT in as basis expansion

Forward transform

Inverse transform

basis

n

u=0

u=7

real(A) imag(A)

n

Page 10: Lect5 v2

1-D DFT in matrix notations

N=8

n

u=0

u=7

real(A) imag(A)

n

Page 11: Lect5 v2

1-D DFT of different lengths

N=32

nu

real(A) imag(A)

N=8

N=16 N=64

Page 12: Lect5 v2

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.

Page 13: Lect5 v2

another illustration of 1D-DFT

real-valued input

Note: the coefficients in x and y are not numerically accurate

Page 14: Lect5 v2

from 1D to 2D

1D2D

?

Page 15: Lect5 v2

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(‘test.png’); % Load grayscale image>> F = fftshift(fft2(I)); % Shifted transform >> imshow(log(abs(F)),[]); % Show log magnitude >> imshow(angle(F),[]); % Show phase angle

Page 16: Lect5 v2

2-D Fourier basis

imagreal

real( ) imag( )

Page 17: Lect5 v2

2-D FT illustrated

imag

real

real-valued

Page 18: Lect5 v2

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)

Page 19: Lect5 v2

Explaining 2D-DFT

fft2

ifft2

Page 20: Lect5 v2
Page 21: Lect5 v2

circular convolution and zero padding

Page 22: Lect5 v2

zero padded filter and response

Page 23: Lect5 v2

zero padded filter and response

Page 24: Lect5 v2

observation 1: compacting energy

Page 25: Lect5 v2

observation 2: amplitude vs. phase

Amplitude: relative prominence of sinusoids Phase: relative displacement of sinusoids

Page 26: Lect5 v2

another example: amplitude vs. phase

Adpated from http://robotics.eecs.berkeley.edu/~sastry/ee20/vision2/vision2.html

A = “Aron”

P = “Phyllis”

log(abs(FA)) log(abs(FP))

angle(FA) angle(FP)

ifft2(abs(FA), angle(FP))

FA = fft2(A) FP = fft2(P)

ifft2(abs(FP), angle(FA))

Page 27: Lect5 v2

fast implementation of 2-D DFT

2 Dimensional DFT is separable

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

1-D DFT of f(m,n) w.r.t n

1-D DFT of F(m,v) w.r.t m

Page 28: Lect5 v2

Implement IDFT as DFT

DFT2

IDFT2

Page 29: Lect5 v2

Properties of 2D-DFT

Page 30: Lect5 v2
Page 31: Lect5 v2

duality result

Page 32: Lect5 v2

outline

why transform 2D Fourier transform

a picture book for DFT and 2D-DFT properties implementation applications

discrete cosine transform (DCT) definition & visualization implementation

Page 33: Lect5 v2

DFT application #1: fast Convolution

? ?O(N2)

Spatial filtering

?

f(x.y)*h(x.y)

Page 34: Lect5 v2

DFT application #1: fast convolution

O(N2¢log2N)

O(N2¢log2N)

O(N2)

Spatial filtering

O(N4)

f(x.y)*h(x.y)

Page 35: Lect5 v2

DFT application #2: feature correlation

Find letter “a” in the following image

bw = imread('text.png'); a = imread(‘letter_a.png'); % Convolution is equivalent to correlation if you rotate the convolution kernel by 180degC = 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.

Page 36: Lect5 v2

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

Page 37: Lect5 v2

smoothing filters: ideal low-pass

Page 38: Lect5 v2

butterworth filters

Page 39: Lect5 v2

Gaussian filters

Page 40: Lect5 v2

low-pass filter examples

Page 41: Lect5 v2

smoothing filter application 1

text enhancement

Page 42: Lect5 v2

smoothing filter application 2

beautify a photo

Page 43: Lect5 v2

high-pass filters

Page 44: Lect5 v2

sobel operator in frequency domain

Question:

Sobel vs. other high-pass filters?

Spatial vs frequency domain implementation?

Page 45: Lect5 v2

high-pass filter examples

Page 46: Lect5 v2

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

Page 47: Lect5 v2

Is DFT a Good (enough) Transform? Theory

Implementation

Application

Page 48: Lect5 v2

The Desirables for Image Transforms

Theory Inverse transform available Energy conservation (Parsevell) Good for compacting energy Orthonormal, complete basis (sort of) shift- and rotation invariant

Implementation Real-valued Separable Fast to compute w. butterfly-like

structure Same implementation for forward and

inverse transform Application

Useful for image enhancement Capture perceptually meaningful

structures in images

DFT

???X X

?X Xx

X X

X

X

X

Page 49: Lect5 v2

DFT vs. DCT

1D-DFT

real(a) imag(a)

n=7

u=0

u=7

u=0

u=7

1D-DCT

a

Page 50: Lect5 v2

1-D Discrete Cosine Transform (DCT)

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!

Nk

N

N

knkkZnz

N

knknzkZ

N

k

N

n

2)(,

1)0(

2

)12(cos)()()(

2

)12(cos)()()(

1

0

1

0

Page 51: Lect5 v2

1-D DCT

k

Z(k)

Transform coeff.

1.0

0.0

-1.0

1.0

0.0

-1.0

1.0

0.0

-1.0

1.0

0.0

-1.0

1.0

0.0

-1.0

1.0

0.0

-1.0

1.0

0.0

-1.0

1.0

0.0

-1.0

Basis vectors

100

0

-100

100

0

-100

100

0

-100

100

0

-100

100

0

-100

100

0

-100

100

0

-100

100

0

-100u=0

u=0 to 1

u=0 to 4

u=0 to 5

u=0 to 2

u=0 to 3

u=0 to 6

u=0 to 7

Reconstructions

n

z(n)

Original signal

Page 52: Lect5 v2

DFT and DCT in Matrix NotationsMatrix notation for 1D transform

1D-DFT

real(A) imag(A)

1D-DCT

AN=32

Page 53: Lect5 v2

From 1D-DCT to 2D-DCT

n=7

u=0

u=7

Rows of A form a set of orthonormal basis A is not symmetric! DCT is not the real part of unitary DFT!

Page 54: Lect5 v2

basis images: DFT (real) vs DCT

Page 55: Lect5 v2

Periodicity Implied by DFT and DCT

Page 56: Lect5 v2

DFT and DCT on LenaDFT2 DCT2

Shift low-freq to the center

Assume periodic and zero-padded …

Assume reflection …

Page 57: Lect5 v2

Using FFT to implement fast DCT

Reorder odd and even elements

Split the DCT sum into odd and even terms

12

0for )12()1(~

)2()(~

N

nnznNz

nznz

)(~)(Re

)(~)(Re 2

)14(cos)(~)(

2

)1'44(cos)'(~

2

)14(cos)(~)(

2

)34(cos)1(~

2

)14(cos)(~)(

2

)34(cos)12(

2

)14(cos)2()()(

2/

1

0

/22/1

0

1

2/'

12/

0

12/

0

12/

0

12/

0

12/

0

NNkj

N

n

NnkjNkjN

n

N

Nn

N

n

N

n

N

n

N

n

N

n

nzDFTek

enzekN

knnzk

N

knNnz

N

knnzk

N

knnNz

N

knnzk

N

knnz

N

knnzkkZ

Page 58: Lect5 v2

The Desirables for Image Transforms

Theory Inverse transform available Energy conservation (Parsevell) Good for compacting energy Orthonormal, complete basis (sort of) shift- and rotation invariant

Implementation Real-valued Separable Fast to compute w. butterfly-like

structure Same implementation for forward and

inverse transform Application

Useful for image enhancement Capture perceptually meaningful

structures in images

DFT

???X X

?X Xx

X X

X

X

X

DCTX X

?X XX

X X

X

Page 59: Lect5 v2

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, …

Page 60: Lect5 v2