- 95 Views
- Uploaded on
- Presentation posted in: General

Recap of Friday

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

linear Filtering

convolution

differential filters

filter types

boundary conditions.

- Write down a 3x3 filter that returns a positive value if the average value of the 4-adjacent neighbors is less than the center and a negative value otherwise
- Write down a filter that will compute the gradient in the x-direction:
- gradx(y,x) = im(y,x+1)-im(y,x) for each x, y

Slide: Hoiem

Filtering Operator

a) _ = D * B

b) A = _ * _

c) F = D * _

d) _ = D * D

- 3. Fill in the blanks:

A

B

E

G

C

F

D

H

I

Slide: Hoiem

Somewhere in Cinque Terre, May 2005

CS129: Computational Photography

James Hays, Brown, Spring 2011

Slides from Steve Seitzand Alexei Efros

Salvador Dali

“Gala Contemplating the Mediterranean Sea,

which at 30 meters becomes the portrait

of Abraham Lincoln”, 1976

Salvador Dali, “Gala Contemplating the Mediterranean Sea, which at 30 meters becomes the portrait of Abraham Lincoln”, 1976

Salvador Dali, “Gala Contemplating the Mediterranean Sea, which at 30 meters becomes the portrait of Abraham Lincoln”, 1976

Teases away fast vs. slow changes in the image.

This change of basis has a special name…

- had crazy idea (1807):
- Any periodic function can be rewritten as a weighted sum of sines and cosines of different frequencies.
- Don’t believe it?
- Neither did Lagrange, Laplace, Poisson and other big wigs
- Not translated into English until 1878!

- But it’s true!
- called Fourier Series

- Our building block:
- Add enough of them to get any signal f(x) you want!
- How many degrees of freedom?
- What does each control?
- Which one encodes the coarse vs. fine structure of the signal?

Inverse Fourier

Transform

Fourier

Transform

F(w)

f(x)

F(w)

f(x)

- We want to understand the frequency w of our signal. So, let’s reparametrize the signal by w instead of x:

- For every w from 0 to inf, F(w) holds the amplitude A and phase f of the corresponding sine
- How can F hold both? Using complex numbers.

We can always go back:

- example : g(t) = sin(2pf t) + (1/3)sin(2p(3f) t)

- example : g(t) = sin(2pf t) + (1/3)sin(2p(3f) t)

=

+

- example : g(t) = sin(2pf t) + (1/3)sin(2p(3f) t)

=

+

- Usually, frequency is more interesting than the phase

=

+

=

=

+

=

=

+

=

=

+

=

=

+

=

=

in Matlab, check out: imagesc(log(abs(fftshift(fft2(im)))));

The Fourier transform of the convolution of two functions is the product of their Fourier transforms

Convolution in spatial domain is equivalent to multiplication in frequency domain!

|F(sx,sy)|

f(x,y)

*

h(x,y)

|H(sx,sy)|

g(x,y)

|G(sx,sy)|

FFT

FFT

=

Inverse FFT

Slide: Hoiem

- Filtering with fft
- Displaying with fft

im = double(imread(‘…'))/255;

im = rgb2gray(im); % “im” should be a gray-scale floating point image

[imh, imw] = size(im);

hs = 50; % filter half-size

fil = fspecial('gaussian', hs*2+1, 10);

fftsize = 1024; % should be order of 2 (for speed) and include padding

im_fft = fft2(im, fftsize, fftsize); % 1) fft im with padding

fil_fft = fft2(fil, fftsize, fftsize); % 2) fft fil, pad to same size as image

im_fil_fft = im_fft .* fil_fft; % 3) multiply fft images

im_fil = ifft2(im_fil_fft); % 4) inverse fft2

im_fil = im_fil(1+hs:size(im,1)+hs, 1+hs:size(im, 2)+hs); % 5) remove padding

figure(1), imagesc(log(abs(fftshift(im_fft)))), axis image, colormap jet

Slide: Hoiem

low-pass:

High-pass / band-pass:

original

smoothed (5x5 Gaussian)

smoothed – original

- The gradient direction is given by:
- how does this relate to the direction of the edge?

- The edge strength is given by the gradient magnitude

- The gradient of an image:
- The gradient points in the direction of most rapid change in intensity

- Consider a single row or column of the image
- Plotting intensity as a function of position gives a signal

How to compute a derivative?

Where is the edge?

Look for peaks in

Where is the edge?

- This saves us one operation:

Laplacian of Gaussian

is the Laplacian operator:

Gaussian

derivative of Gaussian

R

G

B

Block-based Discrete Cosine Transform (DCT)

- The first coefficient B(0,0) is the DC component, the average intensity
- The top-left coeffs represent low frequencies, the bottom right – high frequencies

- DCT enables image compression by concentrating most image information in the low frequencies
- Lose unimportant image info (high frequencies) by cutting B(u,v) at bottom right
- The decoder computes the inverse DCT – IDCT

- Quantization Table
- 3 5 7 9 11 13 15 17
- 5 7 9 11 13 15 17 19
- 7 9 11 13 15 17 19 21
- 9 11 13 15 17 19 21 23
- 11 13 15 17 19 21 23 25
- 13 15 17 19 21 23 25 27
- 15 17 19 21 23 25 27 29
- 17 19 21 23 25 27 29 31

89k

12k

- Sometimes it makes sense to think of images and filtering in the frequency domain
- Fourier analysis

- Can be faster to filter using FFT for large images (N logN vs. N2 for auto-correlation)
- Images are mostly smooth
- Basis for compression

- Remember to low-pass before sampling

Frequency domain can be useful for

Analysis

Computational efficiency

Compression