2D Fourier Theory for Image Analysis Mani Thomas CISC 489/689.
-
date post
21-Dec-2015 -
Category
Documents
-
view
228 -
download
0
Transcript of 2D Fourier Theory for Image Analysis Mani Thomas CISC 489/689.
Roadmap
2D image basis Fourier basis Scale-space representation
Gaussian pyramidLaplacian pyramid
Image mosaicing Gabor filters
Different basis representation
Recall our discussion of basis vectors for coordinate systems:Describe point as linear combination of ortho-
gonal basis vectors: x = a1v1 + ... + anvn
The standard basis for images is the set of unit vectors corresponding to each pixel. A toy example:
Hadamard basis
The standard basis is not the only one we can use to describe an image
E.g., the Hadamard basis (basis images shown here for 2 x 2 images, where black = +1, white = -1) For the previous example, we can express the image with these new (normalized) basis vectors as:
Coefficients of sum = projection of I onto new basis (dot product) These are the coordinates of the image in “Hadamard space” We can also say that I has undergone a Hadamard transform H:
Sinusoidal Basis
Binary-valued, rectangular wave pattern of Hadamard basis doesn’t capture real image gradients well Idea: Use smoothly-varying sinusoidal
patterns at different frequencies, angles for basis images
2D DFT
Forward 2D DFT
Inverse 2D DFT
(u, v) are the frequency coordinates while (x, y) are the spatial coordinates
M, N are the number of spatial pixels along the x, y coordinates
1
0
1
0
)//(2),(1
),(M
x
N
y
NvyMuxjeyxfMN
vuF
1
0
1
0
)//(2),(),(M
u
N
v
NvyMuxjevuFyxf
Fourier transform in Matlab
Discrete, 2-D Fourier & inverse Fourier transforms are computed by 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
Phase and Magnitude
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)
Image pyramid representation
Smoothing means removing high frequencies Smoothing required to
avoid aliasing Fourier transform of a
Gaussian is a Gaussian Convolution is a
multiplication Gaussian suppresses high frequencies
Gaussian Pyramid
Downsampling: Cut width, height in half at each iteration:
Upsampling S"(I): Double size of image, interpolate missing pixels
Let the base (the finest resolution) of an n-level Gaussian pyramid be defined
as P0 = I. Then the ith level is reduced from the level below it by:
Gaussian pyramid
from Forsyth & Ponce
Laplacian pyramid
The tip (the coarsest resolution) of an n-level Laplacian pyramid is the same as the Gaussian
pyramid at that level: Ln(I) = Pn(I) The ith level is expanded from the level above
according to Li(I) = Pi(I) ¡ S"(Pi+1(I)) Synthesizing the original image: Get I back by
summing upsampled Laplacian pyramid levels
Gaussian and Laplacian
Gaussian – Smoothing pyramid Each level is a smoothed and decimated signal of the previous
Laplacian – Band pass filter of the images Each level is the difference of a more smoothed and less
smoothed image
courtesy of Wolfram
Summation Property
If L0, L1 LN is the sequence of laplacians
Li = Gi – EXPAND[Gi+1], 0<i<N
LN = GN
The steps used to construct the Laplacian can be reversed to get the originalExpand Li and add it to Li-1 to Gi-1
G0 = i=0N Li
Image mosaicing
Automatic mosaicingCross correlation to compute translation
between images Matlab demo – Burt and Adelson’s paper
http://www.cs.huji.ac.il/course/2003/impr/spline83.pdf
image Iimage J
aJwwarp refine
a
aΔ+
Pyramid of image J Pyramid of image I
image Iimage J
Application - Coarse-to-Fine Estimation
u=10 pixels
u=5 pixels
u=2.5 pixels
u=1.25 pixels
Slide from CS 223-B L9 by Richard Szeliski
Gabor filters
Gaussian windowed Fourier TransformMake convolution kernels from product of
Fourier basis images and Gaussians
£ =
Odd(sin)
Even(cos)
Frequency
Texture Representation: Filter Responses Choose a group of filters
Edge/Bar filters: Something like Gabor filters at different orientations, scales
Spot filters: Center-surround filters like a Gaussian/difference of Gaussians at multiple scales
Run filters over image to get a set of response images Each contains specific texture information
Texture Similarity based on Response Statistics Collect statistics of responses over an
image or subimageMean of squared responseMean and variance of squared response
Euclidean distance between vectors of response statistics for two images is measure of texture similarity