Image Filtering

63
Image Filtering Jianping Fan Department of Computer Science UNC-Charlotte Course Website: http://webpages.uncc.edu/jfan/itcs5152.html

Transcript of Image Filtering

Page 1: Image Filtering

Image Filtering

Jianping Fan

Department of Computer Science

UNC-Charlotte

Course Website: http://webpages.uncc.edu/jfan/itcs5152.html

Page 2: Image Filtering

Previous classes

• Computer vision overview

• Mathematics of pinhole camera (Geometry)

Page 3: Image Filtering

Recap: projection

XtRKx

1100

0

1 333231

232221

131211

0

0

z

y

x

trrr

trrr

trrr

v

us

v

u

w

z

y

x

X

x

Page 4: Image Filtering

Today’s class

• Biological vision and color

• Image filtering

Page 5: Image Filtering

The Eye

• The human eye is a camera!– Iris - colored annulus with radial muscles

– Pupil - the hole (aperture) whose size is controlled by the iris

– What’s the “film”?

– photoreceptor cells (rods and cones) in the retina

Slide by Steve Seitz

Page 6: Image Filtering

Rod / Cone sensitivity

Page 7: Image Filtering

Electromagnetic Spectrum

http://www.yorku.ca/eye/photopik.htm

Human Luminance Sensitivity Function

Page 8: Image Filtering

Why do we see light of these wavelengths?

© Stephen E. Palmer, 2002

…because that’s where the

Sun radiates EM energy

Visible Light

Page 9: Image Filtering

The Physics of Light

Any patch of light can be completely described

physically by its spectrum: the number of photons

(per time unit) at each wavelength 400 - 700 nm.

400 500 600 700

Wavelength (nm.)

# Photons(per ms.)

© Stephen E. Palmer, 2002

Page 10: Image Filtering

The Physics of Light

.

# P

hoto

ns

D. Normal Daylight

Wavelength (nm.)

B. Gallium Phosphide Crystal

400 500 600 700

# P

hoto

ns

Wavelength (nm.)

A. Ruby Laser

400 500 600 700

400 500 600 700

# P

hoto

ns

C. Tungsten Lightbulb

400 500 600 700

# P

hoto

ns

Some examples of the spectra of light sources

© Stephen E. Palmer, 2002

Page 11: Image Filtering

The Physics of Light

Some examples of the reflectance spectra of surfaces

Wavelength (nm)

% P

hoto

ns R

eflecte

d

Red

400 700

Yellow

400 700

Blue

400 700

Purple

400 700

© Stephen E. Palmer, 2002

Page 12: Image Filtering

© Stephen E. Palmer, 2002

.

400 450 500 550 600 650

RE

LA

TIV

E A

BS

OR

BA

NC

E (

%)

WAVELENGTH (nm.)

100

50

440

S

530 560 nm.

M L

Three kinds of cones:

Physiology of Color Vision

• Why are M and L cones so close?

• Why are there 3?

Page 13: Image Filtering

Tetrachromatism

• Most birds, and many other animals, have cones for ultraviolet light.

• Some humans, mostly female, seem to have slight tetrachromatism.

Bird cone

responses

Page 14: Image Filtering

More Spectra

metamers

Page 15: Image Filtering

Practical Color Sensing: Bayer Grid

• Estimate RGBat ‘G’ cells from neighboring values

Slide by Steve Seitz

Page 16: Image Filtering

Color ImageR

G

B

Page 17: Image Filtering

Images in Matlab

• Images represented as a matrix• Suppose we have a NxM RGB image called “im”

– im(1,1,1) = top-left pixel value in R-channel– im(y, x, b) = y pixels down, x pixels to right in the bth

channel– im(N, M, 3) = bottom-right pixel in B-channel

0.92 0.93 0.94 0.97 0.62 0.37 0.85 0.97 0.93 0.92 0.99

0.95 0.89 0.82 0.89 0.56 0.31 0.75 0.92 0.81 0.95 0.91

0.89 0.72 0.51 0.55 0.51 0.42 0.57 0.41 0.49 0.91 0.92

0.96 0.95 0.88 0.94 0.56 0.46 0.91 0.87 0.90 0.97 0.95

0.71 0.81 0.81 0.87 0.57 0.37 0.80 0.88 0.89 0.79 0.85

0.49 0.62 0.60 0.58 0.50 0.60 0.58 0.50 0.61 0.45 0.33

0.86 0.84 0.74 0.58 0.51 0.39 0.73 0.92 0.91 0.49 0.74

0.96 0.67 0.54 0.85 0.48 0.37 0.88 0.90 0.94 0.82 0.93

0.69 0.49 0.56 0.66 0.43 0.42 0.77 0.73 0.71 0.90 0.99

0.79 0.73 0.90 0.67 0.33 0.61 0.69 0.79 0.73 0.93 0.97

0.91 0.94 0.89 0.49 0.41 0.78 0.78 0.77 0.89 0.99 0.93

0.92 0.93 0.94 0.97 0.62 0.37 0.85 0.97 0.93 0.92 0.99

0.95 0.89 0.82 0.89 0.56 0.31 0.75 0.92 0.81 0.95 0.91

0.89 0.72 0.51 0.55 0.51 0.42 0.57 0.41 0.49 0.91 0.92

0.96 0.95 0.88 0.94 0.56 0.46 0.91 0.87 0.90 0.97 0.95

0.71 0.81 0.81 0.87 0.57 0.37 0.80 0.88 0.89 0.79 0.85

0.49 0.62 0.60 0.58 0.50 0.60 0.58 0.50 0.61 0.45 0.33

0.86 0.84 0.74 0.58 0.51 0.39 0.73 0.92 0.91 0.49 0.74

0.96 0.67 0.54 0.85 0.48 0.37 0.88 0.90 0.94 0.82 0.93

0.69 0.49 0.56 0.66 0.43 0.42 0.77 0.73 0.71 0.90 0.99

0.79 0.73 0.90 0.67 0.33 0.61 0.69 0.79 0.73 0.93 0.97

0.91 0.94 0.89 0.49 0.41 0.78 0.78 0.77 0.89 0.99 0.93

0.92 0.93 0.94 0.97 0.62 0.37 0.85 0.97 0.93 0.92 0.99

0.95 0.89 0.82 0.89 0.56 0.31 0.75 0.92 0.81 0.95 0.91

0.89 0.72 0.51 0.55 0.51 0.42 0.57 0.41 0.49 0.91 0.92

0.96 0.95 0.88 0.94 0.56 0.46 0.91 0.87 0.90 0.97 0.95

0.71 0.81 0.81 0.87 0.57 0.37 0.80 0.88 0.89 0.79 0.85

0.49 0.62 0.60 0.58 0.50 0.60 0.58 0.50 0.61 0.45 0.33

0.86 0.84 0.74 0.58 0.51 0.39 0.73 0.92 0.91 0.49 0.74

0.96 0.67 0.54 0.85 0.48 0.37 0.88 0.90 0.94 0.82 0.93

0.69 0.49 0.56 0.66 0.43 0.42 0.77 0.73 0.71 0.90 0.99

0.79 0.73 0.90 0.67 0.33 0.61 0.69 0.79 0.73 0.93 0.97

0.91 0.94 0.89 0.49 0.41 0.78 0.78 0.77 0.89 0.99 0.93

R

G

B

rowcolumn

Page 18: Image Filtering

Images in Matlab Python

• Images represented as a matrix• Suppose we have a NxM RGB image called “im”

– im(0,0,0) = top-left pixel value in R-channel– im(y, x, b) = y pixels down, x pixels to right in the bth

channel– im(N-1, M-1, 2) = bottom-right pixel in B-channel

0.92 0.93 0.94 0.97 0.62 0.37 0.85 0.97 0.93 0.92 0.99

0.95 0.89 0.82 0.89 0.56 0.31 0.75 0.92 0.81 0.95 0.91

0.89 0.72 0.51 0.55 0.51 0.42 0.57 0.41 0.49 0.91 0.92

0.96 0.95 0.88 0.94 0.56 0.46 0.91 0.87 0.90 0.97 0.95

0.71 0.81 0.81 0.87 0.57 0.37 0.80 0.88 0.89 0.79 0.85

0.49 0.62 0.60 0.58 0.50 0.60 0.58 0.50 0.61 0.45 0.33

0.86 0.84 0.74 0.58 0.51 0.39 0.73 0.92 0.91 0.49 0.74

0.96 0.67 0.54 0.85 0.48 0.37 0.88 0.90 0.94 0.82 0.93

0.69 0.49 0.56 0.66 0.43 0.42 0.77 0.73 0.71 0.90 0.99

0.79 0.73 0.90 0.67 0.33 0.61 0.69 0.79 0.73 0.93 0.97

0.91 0.94 0.89 0.49 0.41 0.78 0.78 0.77 0.89 0.99 0.93

0.92 0.93 0.94 0.97 0.62 0.37 0.85 0.97 0.93 0.92 0.99

0.95 0.89 0.82 0.89 0.56 0.31 0.75 0.92 0.81 0.95 0.91

0.89 0.72 0.51 0.55 0.51 0.42 0.57 0.41 0.49 0.91 0.92

0.96 0.95 0.88 0.94 0.56 0.46 0.91 0.87 0.90 0.97 0.95

0.71 0.81 0.81 0.87 0.57 0.37 0.80 0.88 0.89 0.79 0.85

0.49 0.62 0.60 0.58 0.50 0.60 0.58 0.50 0.61 0.45 0.33

0.86 0.84 0.74 0.58 0.51 0.39 0.73 0.92 0.91 0.49 0.74

0.96 0.67 0.54 0.85 0.48 0.37 0.88 0.90 0.94 0.82 0.93

0.69 0.49 0.56 0.66 0.43 0.42 0.77 0.73 0.71 0.90 0.99

0.79 0.73 0.90 0.67 0.33 0.61 0.69 0.79 0.73 0.93 0.97

0.91 0.94 0.89 0.49 0.41 0.78 0.78 0.77 0.89 0.99 0.93

0.92 0.93 0.94 0.97 0.62 0.37 0.85 0.97 0.93 0.92 0.99

0.95 0.89 0.82 0.89 0.56 0.31 0.75 0.92 0.81 0.95 0.91

0.89 0.72 0.51 0.55 0.51 0.42 0.57 0.41 0.49 0.91 0.92

0.96 0.95 0.88 0.94 0.56 0.46 0.91 0.87 0.90 0.97 0.95

0.71 0.81 0.81 0.87 0.57 0.37 0.80 0.88 0.89 0.79 0.85

0.49 0.62 0.60 0.58 0.50 0.60 0.58 0.50 0.61 0.45 0.33

0.86 0.84 0.74 0.58 0.51 0.39 0.73 0.92 0.91 0.49 0.74

0.96 0.67 0.54 0.85 0.48 0.37 0.88 0.90 0.94 0.82 0.93

0.69 0.49 0.56 0.66 0.43 0.42 0.77 0.73 0.71 0.90 0.99

0.79 0.73 0.90 0.67 0.33 0.61 0.69 0.79 0.73 0.93 0.97

0.91 0.94 0.89 0.49 0.41 0.78 0.78 0.77 0.89 0.99 0.93

R

G

B

rowcolumn

Page 19: Image Filtering

Color spaces

• How can we represent color?

http://en.wikipedia.org/wiki/File:RGB_illumination.jpg

Page 20: Image Filtering

Color spaces: RGB

0,1,0

0,0,1

1,0,0

Image from: http://en.wikipedia.org/wiki/File:RGB_color_solid_cube.png

Some drawbacks• Strongly correlated channels

• Non-perceptual

Default color space

R(G=0,B=0)

G(R=0,B=0)

B(R=0,G=0)

Page 21: Image Filtering

Color spaces: HSV

Intuitive color space

H(S=1,V=1)

S(H=1,V=1)

V(H=1,S=0)

Page 22: Image Filtering

Color spaces: YCbCr

Y(Cb=0.5,Cr=0.5)

Cb(Y=0.5,Cr=0.5)

Cr(Y=0.5,Cb=05)

Y=0 Y=0.5

Y=1Cb

Cr

Fast to compute, good for

compression, used by TV

Page 23: Image Filtering

Color spaces: L*a*b*

“Perceptually uniform”* color space

L(a=0,b=0)

a(L=65,b=0)

b(L=65,a=0)

Page 24: Image Filtering

If you had to choose, would you rather go without luminance or chrominance?

Page 25: Image Filtering

If you had to choose, would you rather go without luminance or chrominance?

Page 26: Image Filtering

Most information in intensity

Only color shown – constant intensity

Page 27: Image Filtering

Most information in intensity

Only intensity shown – constant color

Page 28: Image Filtering

Most information in intensity

Original image

Page 29: Image Filtering

Back to grayscale intensity0.92 0.93 0.94 0.97 0.62 0.37 0.85 0.97 0.93 0.92 0.99

0.95 0.89 0.82 0.89 0.56 0.31 0.75 0.92 0.81 0.95 0.91

0.89 0.72 0.51 0.55 0.51 0.42 0.57 0.41 0.49 0.91 0.92

0.96 0.95 0.88 0.94 0.56 0.46 0.91 0.87 0.90 0.97 0.95

0.71 0.81 0.81 0.87 0.57 0.37 0.80 0.88 0.89 0.79 0.85

0.49 0.62 0.60 0.58 0.50 0.60 0.58 0.50 0.61 0.45 0.33

0.86 0.84 0.74 0.58 0.51 0.39 0.73 0.92 0.91 0.49 0.74

0.96 0.67 0.54 0.85 0.48 0.37 0.88 0.90 0.94 0.82 0.93

0.69 0.49 0.56 0.66 0.43 0.42 0.77 0.73 0.71 0.90 0.99

0.79 0.73 0.90 0.67 0.33 0.61 0.69 0.79 0.73 0.93 0.97

0.91 0.94 0.89 0.49 0.41 0.78 0.78 0.77 0.89 0.99 0.93

Page 30: Image Filtering

Upcoming classes: three views of filtering

• Image filters in spatial domain– Filter is a mathematical operation of a grid of numbers– Smoothing, sharpening, measuring texture

• Image filters in the frequency domain– Filtering is a way to modify the frequencies of images– Denoising, sampling, image compression

• Templates and Image Pyramids– Filtering is a way to match a template to the image– Detection, coarse-to-fine registration

Page 31: Image Filtering

Image filtering

• Image filtering: compute function of local neighborhood at each position

• Really important!

– Enhance images• Denoise, resize, increase contrast, etc.

– Extract information from images• Texture, edges, distinctive points, etc.

– Detect patterns• Template matching

– Deep Convolutional Networks

Page 32: Image Filtering

111

111

111

Slide credit: David Lowe (UBC)

],[g

Example: box filter

Page 33: Image Filtering

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 0 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 0 0 0 0 0 0 0

0 0 90 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 0 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 0 0 0 0 0 0 0

0 0 90 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

Credit: S. Seitz

],[],[],[,

lnkmflkgnmhlk

[.,.]h[.,.]f

Image filtering

111

111

111

],[g

Page 34: Image Filtering

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 0 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 0 0 0 0 0 0 0

0 0 90 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 10

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 0 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 0 0 0 0 0 0 0

0 0 90 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

[.,.]h[.,.]f

Image filtering

111

111

111

],[g

Credit: S. Seitz

],[],[],[,

lnkmflkgnmhlk

Page 35: Image Filtering

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 0 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 0 0 0 0 0 0 0

0 0 90 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 10 20

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 0 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 0 0 0 0 0 0 0

0 0 90 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

[.,.]h[.,.]f

Image filtering

111

111

111

],[g

Credit: S. Seitz

],[],[],[,

lnkmflkgnmhlk

Page 36: Image Filtering

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 0 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 0 0 0 0 0 0 0

0 0 90 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 10 20 30

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 0 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 0 0 0 0 0 0 0

0 0 90 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

[.,.]h[.,.]f

Image filtering

111

111

111

],[g

Credit: S. Seitz

],[],[],[,

lnkmflkgnmhlk

Page 37: Image Filtering

0 10 20 30 30

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 0 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 0 0 0 0 0 0 0

0 0 90 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

[.,.]h[.,.]f

Image filtering

111

111

111

],[g

Credit: S. Seitz

],[],[],[,

lnkmflkgnmhlk

Page 38: Image Filtering

0 10 20 30 30

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 0 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 0 0 0 0 0 0 0

0 0 90 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

[.,.]h[.,.]f

Image filtering

111

111

111

],[g

Credit: S. Seitz

?

],[],[],[,

lnkmflkgnmhlk

Page 39: Image Filtering

0 10 20 30 30

50

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 0 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 0 0 0 0 0 0 0

0 0 90 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

[.,.]h[.,.]f

Image filtering

111

111

111

],[g

Credit: S. Seitz

?

],[],[],[,

lnkmflkgnmhlk

Page 40: Image Filtering

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 90 0 90 90 90 0 0

0 0 0 90 90 90 90 90 0 0

0 0 0 0 0 0 0 0 0 0

0 0 90 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 10 20 30 30 30 20 10

0 20 40 60 60 60 40 20

0 30 60 90 90 90 60 30

0 30 50 80 80 90 60 30

0 30 50 80 80 90 60 30

0 20 30 50 50 60 40 20

10 20 30 30 30 30 20 10

10 10 10 0 0 0 0 0

[.,.]h[.,.]f

Image filtering111

111

111],[g

Credit: S. Seitz

],[],[],[,

lnkmflkgnmhlk

Page 41: Image Filtering

What does it do?

• Replaces each pixel with

an average of its

neighborhood

• Achieve smoothing effect

(remove sharp features)

111

111

111

Slide credit: David Lowe (UBC)

],[g

Box Filter

Page 42: Image Filtering

Smoothing with box filter

Page 43: Image Filtering

Practice with linear filters

000

010

000

Original

?

Source: D. Lowe

Page 44: Image Filtering

Practice with linear filters

000

010

000

Original Filtered

(no change)

Source: D. Lowe

Page 45: Image Filtering

Practice with linear filters

000

100

000

Original

?

Source: D. Lowe

Page 46: Image Filtering

Practice with linear filters

000

100

000

Original Shifted left

By 1 pixel

Source: D. Lowe

Page 47: Image Filtering

Practice with linear filters

Original

111

111

111

000

020

000

- ?

(Note that filter sums to 1)

Source: D. Lowe

Page 48: Image Filtering

Practice with linear filters

Original

111

111

111

000

020

000

-

Sharpening filter

- Accentuates differences with local

average

Source: D. Lowe

Page 49: Image Filtering

Sharpening

Source: D. Lowe

Page 50: Image Filtering

Other filters

-101

-202

-101

Vertical Edge

(absolute value)

Sobel

Page 51: Image Filtering

Other filters

-1-2-1

000

121

Horizontal Edge

(absolute value)

Sobel

Page 52: Image Filtering

Filtering vs. Convolution

• 2d filtering– h=filter2(f,I); or

h=imfilter(I,f);

• 2d convolution– h=conv2(f,I);

],[],[],[,

lnkmIlkfnmhlk

I=imagef=filter

],[],[],[,

lnkmIlkfnmhlk

Page 53: Image Filtering

Key properties of linear filters

Linearity:imfilter(I, f1 + f2) =

imfilter(I,f1) + imfilter(I,f2)

Shift invariance: same behavior regardless of pixel locationimfilter(I,shift(f)) = shift(imfilter(I,f))

Any linear, shift-invariant operator can be represented as a convolution

Source: S. Lazebnik

Page 54: Image Filtering

More properties• Commutative: a * b = b * a

– Conceptually no difference between filter and signal

– But particular filtering implementations might break this equality

• Associative: a * (b * c) = (a * b) * c– Often apply several filters one after another: (((a * b1) * b2) * b3)

– This is equivalent to applying one filter: a * (b1 * b2 * b3)

• Distributes over addition: a * (b + c) = (a * b) + (a * c)

• Scalars factor out: ka * b = a * kb = k (a * b)

• Identity: unit impulse e = [0, 0, 1, 0, 0],a * e = a

Source: S. Lazebnik

Page 55: Image Filtering

• Weight contributions of neighboring pixels by nearness

0.003 0.013 0.022 0.013 0.0030.013 0.059 0.097 0.059 0.0130.022 0.097 0.159 0.097 0.0220.013 0.059 0.097 0.059 0.0130.003 0.013 0.022 0.013 0.003

5 x 5, = 1

Slide credit: Christopher Rasmussen

Important filter: Gaussian

Page 56: Image Filtering

Smoothing with Gaussian filter

Page 57: Image Filtering

Smoothing with box filter

Page 58: Image Filtering

Gaussian filters

• Remove “high-frequency” components from the image (low-pass filter)

– Images become more smooth

• Convolution with self is another Gaussian

– So can smooth with small-width kernel, repeat, and get same result as larger-width kernel would have

– Convolving two times with Gaussian kernel of width σis same as convolving once with kernel of width σ√2

• Separable kernel

– Factors into product of two 1D Gaussians

Source: K. Grauman

Page 59: Image Filtering

Separability of the Gaussian filter

Source: D. Lowe

Page 60: Image Filtering

Separability example

*

*

=

=

2D convolution

(center location only)

Source: K. Grauman

The filter factors

into a product of 1D

filters:

Perform convolution

along rows:

Followed by convolution

along the remaining column:

Page 61: Image Filtering

Separability

• Why is separability useful in practice?

Page 62: Image Filtering

How big should the filter be?• Values at edges should be near zero

• Rule of thumb for Gaussian: set filter half-width to about 3 σ

Practical matters

Page 63: Image Filtering

Practical matters

• What about near the edge?

– the filter window falls off the edge of the image

– need to extrapolate

– methods:

• clip filter (black)

• wrap around

• copy edge

• reflect across edge

Source: S. Marschner