SlideShare a Scribd company logo
Linear filtering
Motivation: Noise reduction
Given a camera and a still scene, how can you
reduce noise?
Take lots of images and average them!
What’s the next best thing?
Source: S. Seitz
• Let’s replace each pixel with a weighted
average of its neighborhood
• The weights are called the filter kernel
• What are the weights for a 3x3 moving
average?
Moving average
1
1
1
1
1
1
1
1
1
“box filter”
Source: D. Lowe
Review: Color
• What are some linear color spaces?
• What are some non-linear color spaces?
• What is a perceptually uniform color space?
• What is color constancy?
• What are some applications of color in
computer vision?
Defining convolution
∑ −
−
=
∗
l
k
l
k
g
l
n
k
m
f
n
m
g
f
,
]
,
[
]
,
[
]
,
)[
(
f
• Let f be the image and g be the kernel. The
output of convolving f with g is denoted f * g.
Source: F. Durand
• Convention: kernel is “flipped”
• MATLAB: conv2 vs. filter2 (also imfilter)
Key properties
• Linearity: filter(f1 + f2 ) = filter(f1) + filter(f2)
• Shift invariance: same behavior regardless of
pixel location: filter(shift(f)) = shift(filter(f))
• Theoretical result: any linear shift-invariant
operator can be represented as a convolution
Properties in more detail
• Commutative: a * b = b * a
• Conceptually no difference between filter and signal
• 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
Annoying details
What is the size of the output?
• MATLAB: filter2(g, f, shape)
• shape = ‘full’: output size is sum of sizes of f and g
• shape = ‘same’: output size is same as f
• shape = ‘valid’: output size is difference of sizes of f and g
f
g
g
g
g
f
g
g
g
g
f
g
g
g
g
full same valid
Annoying details
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
Annoying details
What about near the edge?
• the filter window falls off the edge of the image
• need to extrapolate
• methods (MATLAB):
– clip filter (black): imfilter(f, g, 0)
– wrap around: imfilter(f, g, ‘circular’)
– copy edge: imfilter(f, g, ‘replicate’)
– reflect across edge: imfilter(f, g, ‘symmetric’)
Source: S. Marschner
Practice with linear filters
0
0
0
0
1
0
0
0
0
Original
?
Source: D. Lowe
Practice with linear filters
0
0
0
0
1
0
0
0
0
Original Filtered
(no change)
Source: D. Lowe
Practice with linear filters
0
0
0
1
0
0
0
0
0
Original
?
Source: D. Lowe
Practice with linear filters
0
0
0
1
0
0
0
0
0
Original Shifted left
By 1 pixel
Source: D. Lowe
Practice with linear filters
Original
?
1
1
1
1
1
1
1
1
1
Source: D. Lowe
Practice with linear filters
Original
1
1
1
1
1
1
1
1
1
Blur (with a
box filter)
Source: D. Lowe
Practice with linear filters
Original
1
1
1
1
1
1
1
1
1
0
0
0
0
2
0
0
0
0
- ?
(Note that filter sums to 1)
Source: D. Lowe
Practice with linear filters
Original
1
1
1
1
1
1
1
1
1
0
0
0
0
2
0
0
0
0
-
Sharpening filter
- Accentuates differences
with local average
Source: D. Lowe
Sharpening
Source: D. Lowe
Smoothing with box filter revisited
• Smoothing with an average actually doesn’t compare
at all well with a defocused lens
• Most obvious difference is that a single point of light
viewed in a defocused lens looks like a fuzzy blob; but
the averaging process would give a little square
Source: D. Forsyth
Smoothing with box filter revisited
• Smoothing with an average actually doesn’t compare
at all well with a defocused lens
• Most obvious difference is that a single point of light
viewed in a defocused lens looks like a fuzzy blob; but
the averaging process would give a little square
• Better idea: to eliminate edge effects, weight
contribution of neighborhood pixels according to their
closeness to the center, like so:
“fuzzy blob”
Gaussian Kernel
• Constant factor at front makes volume sum to 1 (can be
ignored, as we should re-normalize weights to sum to 1 in
any case)
0.003 0.013 0.022 0.013 0.003
0.013 0.059 0.097 0.059 0.013
0.022 0.097 0.159 0.097 0.022
0.013 0.059 0.097 0.059 0.013
0.003 0.013 0.022 0.013 0.003
5 x 5, σ = 1
Source: C. Rasmussen
Choosing kernel width
• Gaussian filters have infinite support, but
discrete filters use finite kernels
Source: K. Grauman
Choosing kernel width
• Rule of thumb: set filter half-width to about
3 σ
Example: Smoothing with a Gaussian
Mean vs. Gaussian filtering
Gaussian filters
• Remove “high-frequency” components from
the image (low-pass filter)
• 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
Separability of the Gaussian filter
Source: D. Lowe
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:
Separability
• Why is separability useful in practice?
Noise
• Salt and pepper
noise: contains
random occurrences
of black and white
pixels
• Impulse noise:
contains random
occurrences of white
pixels
• Gaussian noise:
variations in
intensity drawn from
a Gaussian normal
distribution
Original
Gaussian noise
Salt and pepper noise
Impulse noise
Source: S. Seitz
Gaussian noise
• Mathematical model: sum of many
independent factors
• Good for small standard deviations
• Assumption: independent, zero-mean noise
Source: M. Hebert
Smoothing with larger standard deviations suppresses noise,
but also blurs the image
Reducing Gaussian noise
Reducing salt-and-pepper noise
What’s wrong with the results?
3x3 5x5 7x7
Alternative idea: Median filtering
• A median filter operates over a window by
selecting the median intensity in the window
• Is median filtering linear?
Source: K. Grauman
Median filter
• What advantage does median filtering have
over Gaussian filtering?
• Robustness to outliers
Source: K. Grauman
Median filter
Salt-and-pepper noise Median filtered
Source: M. Hebert
MATLAB: medfilt2(image, [h w])
Median vs. Gaussian filtering
3x3 5x5 7x7
Gaussian
Median
Sharpening revisited
What does blurring take away?
original smoothed (5x5)
–
detail
=
sharpened
=
Let’s add it back:
original detail
+ α
Unsharp mask filter
Gaussian
unit impulse
Laplacian of Gaussian
)
)
1
((
)
1
(
)
( g
e
f
g
f
f
g
f
f
f −
+
∗
=
∗
−
+
=
∗
−
+ α
α
α
α
image blurred
image
unit impulse
(identity)
Application: Hybrid Images
A. Oliva, A. Torralba, P.G. Schyns,
“Hybrid Images,” SIGGRAPH 2006
Application: Hybrid Images
A. Oliva, A. Torralba, P.G. Schyns,
“Hybrid Images,” SIGGRAPH 2006

More Related Content

PDF
Lec06 edge
PDF
Lec03 light
PPTX
Lec13 stereo converted
PDF
Lec09 hough
PDF
Lec04 color
PDF
Lec08 fitting
PDF
Lec02 camera
PDF
Lec10 alignment
Lec06 edge
Lec03 light
Lec13 stereo converted
Lec09 hough
Lec04 color
Lec08 fitting
Lec02 camera
Lec10 alignment

What's hot (18)

PDF
Lec12 epipolar
PDF
Lec14 multiview stereo
PDF
Lec15 sfm
PDF
Lec07 corner blob
PPTX
Lec11 single view-converted
PPT
Lighting and shading
PPT
Edges and lines
PPT
Lighting and shading
PPTX
Illumination Model
PPT
GRPHICS06 - Shading
PDF
Phong Shading over any Polygonal Surface
PDF
Dense Image Matching - Challenges and Potentials (Keynote 3D-ARCH 2015)
PPT
Graphics Lecture 7
PPTX
Line detection algorithms
PPT
Spatial filtering
PPT
GRPHICS05 - Rendering (2)
PPT
Spatial filtering using image processing
Lec12 epipolar
Lec14 multiview stereo
Lec15 sfm
Lec07 corner blob
Lec11 single view-converted
Lighting and shading
Edges and lines
Lighting and shading
Illumination Model
GRPHICS06 - Shading
Phong Shading over any Polygonal Surface
Dense Image Matching - Challenges and Potentials (Keynote 3D-ARCH 2015)
Graphics Lecture 7
Line detection algorithms
Spatial filtering
GRPHICS05 - Rendering (2)
Spatial filtering using image processing
Ad

Similar to Lec05 filter (20)

PPT
Filtering.ppt
PPTX
03 cie552 image_filtering_spatial
PPTX
Noise filtering
PPT
cos323_s06_lecture13_sigproc bio signal processing
PPTX
Image Restoration and Reconstruction in Digital Image Processing
PPTX
Introduction to Edges Detection Techniques
PPT
Feature Detection and Matching
PPTX
Smoothing in Digital Image Processing
PPTX
DIP -Unit 3 ppt.pptx
PPTX
Module 31
PPSX
Image Processing: Spatial filters
PPT
Spatial Filtering in intro image processingr
PPTX
Computer vision - images and image filtering
PDF
Lecture 4
PPTX
Fuzzy Logic Based Edge Detection
PPT
EDGEDETECTION algorithm and theory for image processing
PPTX
Computer vision - edge detection
PPT
PPTX
Digital image processing techniques
PPTX
OpenCV presentation series- part 4
Filtering.ppt
03 cie552 image_filtering_spatial
Noise filtering
cos323_s06_lecture13_sigproc bio signal processing
Image Restoration and Reconstruction in Digital Image Processing
Introduction to Edges Detection Techniques
Feature Detection and Matching
Smoothing in Digital Image Processing
DIP -Unit 3 ppt.pptx
Module 31
Image Processing: Spatial filters
Spatial Filtering in intro image processingr
Computer vision - images and image filtering
Lecture 4
Fuzzy Logic Based Edge Detection
EDGEDETECTION algorithm and theory for image processing
Computer vision - edge detection
Digital image processing techniques
OpenCV presentation series- part 4
Ad

More from BaliThorat1 (17)

PDF
8 operating system concept
PDF
7 processor
PDF
6 input output devices
PDF
2 windows operating system
PDF
5 computer memory
PDF
4 computer languages
PDF
1 fundamentals of computer
PDF
1 fundamentals of computer system
PDF
Computer generation and classification
PDF
Algorithm and flowchart
PDF
6 cpu scheduling
PDF
5 process synchronization
PDF
4 threads
PDF
3 processes
PDF
2 os structure
PDF
1 intro and overview
PDF
Lec01 introduction
8 operating system concept
7 processor
6 input output devices
2 windows operating system
5 computer memory
4 computer languages
1 fundamentals of computer
1 fundamentals of computer system
Computer generation and classification
Algorithm and flowchart
6 cpu scheduling
5 process synchronization
4 threads
3 processes
2 os structure
1 intro and overview
Lec01 introduction

Recently uploaded (20)

PPTX
Pharma ospi slides which help in ospi learning
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PDF
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
PPTX
Microbial diseases, their pathogenesis and prophylaxis
PDF
TR - Agricultural Crops Production NC III.pdf
PPTX
human mycosis Human fungal infections are called human mycosis..pptx
PPTX
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
PDF
Abdominal Access Techniques with Prof. Dr. R K Mishra
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PDF
Classroom Observation Tools for Teachers
PDF
Basic Mud Logging Guide for educational purpose
PDF
Computing-Curriculum for Schools in Ghana
PPTX
master seminar digital applications in india
PPTX
Institutional Correction lecture only . . .
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PDF
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
PDF
Sports Quiz easy sports quiz sports quiz
Pharma ospi slides which help in ospi learning
Pharmacology of Heart Failure /Pharmacotherapy of CHF
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
Microbial diseases, their pathogenesis and prophylaxis
TR - Agricultural Crops Production NC III.pdf
human mycosis Human fungal infections are called human mycosis..pptx
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
Abdominal Access Techniques with Prof. Dr. R K Mishra
Renaissance Architecture: A Journey from Faith to Humanism
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
Final Presentation General Medicine 03-08-2024.pptx
Classroom Observation Tools for Teachers
Basic Mud Logging Guide for educational purpose
Computing-Curriculum for Schools in Ghana
master seminar digital applications in india
Institutional Correction lecture only . . .
STATICS OF THE RIGID BODIES Hibbelers.pdf
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
Sports Quiz easy sports quiz sports quiz

Lec05 filter

  • 2. Motivation: Noise reduction Given a camera and a still scene, how can you reduce noise? Take lots of images and average them! What’s the next best thing? Source: S. Seitz
  • 3. • Let’s replace each pixel with a weighted average of its neighborhood • The weights are called the filter kernel • What are the weights for a 3x3 moving average? Moving average 1 1 1 1 1 1 1 1 1 “box filter” Source: D. Lowe
  • 4. Review: Color • What are some linear color spaces? • What are some non-linear color spaces? • What is a perceptually uniform color space? • What is color constancy? • What are some applications of color in computer vision?
  • 5. Defining convolution ∑ − − = ∗ l k l k g l n k m f n m g f , ] , [ ] , [ ] , )[ ( f • Let f be the image and g be the kernel. The output of convolving f with g is denoted f * g. Source: F. Durand • Convention: kernel is “flipped” • MATLAB: conv2 vs. filter2 (also imfilter)
  • 6. Key properties • Linearity: filter(f1 + f2 ) = filter(f1) + filter(f2) • Shift invariance: same behavior regardless of pixel location: filter(shift(f)) = shift(filter(f)) • Theoretical result: any linear shift-invariant operator can be represented as a convolution
  • 7. Properties in more detail • Commutative: a * b = b * a • Conceptually no difference between filter and signal • 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
  • 8. Annoying details What is the size of the output? • MATLAB: filter2(g, f, shape) • shape = ‘full’: output size is sum of sizes of f and g • shape = ‘same’: output size is same as f • shape = ‘valid’: output size is difference of sizes of f and g f g g g g f g g g g f g g g g full same valid
  • 9. Annoying details 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
  • 10. Annoying details What about near the edge? • the filter window falls off the edge of the image • need to extrapolate • methods (MATLAB): – clip filter (black): imfilter(f, g, 0) – wrap around: imfilter(f, g, ‘circular’) – copy edge: imfilter(f, g, ‘replicate’) – reflect across edge: imfilter(f, g, ‘symmetric’) Source: S. Marschner
  • 11. Practice with linear filters 0 0 0 0 1 0 0 0 0 Original ? Source: D. Lowe
  • 12. Practice with linear filters 0 0 0 0 1 0 0 0 0 Original Filtered (no change) Source: D. Lowe
  • 13. Practice with linear filters 0 0 0 1 0 0 0 0 0 Original ? Source: D. Lowe
  • 14. Practice with linear filters 0 0 0 1 0 0 0 0 0 Original Shifted left By 1 pixel Source: D. Lowe
  • 15. Practice with linear filters Original ? 1 1 1 1 1 1 1 1 1 Source: D. Lowe
  • 16. Practice with linear filters Original 1 1 1 1 1 1 1 1 1 Blur (with a box filter) Source: D. Lowe
  • 17. Practice with linear filters Original 1 1 1 1 1 1 1 1 1 0 0 0 0 2 0 0 0 0 - ? (Note that filter sums to 1) Source: D. Lowe
  • 18. Practice with linear filters Original 1 1 1 1 1 1 1 1 1 0 0 0 0 2 0 0 0 0 - Sharpening filter - Accentuates differences with local average Source: D. Lowe
  • 20. Smoothing with box filter revisited • Smoothing with an average actually doesn’t compare at all well with a defocused lens • Most obvious difference is that a single point of light viewed in a defocused lens looks like a fuzzy blob; but the averaging process would give a little square Source: D. Forsyth
  • 21. Smoothing with box filter revisited • Smoothing with an average actually doesn’t compare at all well with a defocused lens • Most obvious difference is that a single point of light viewed in a defocused lens looks like a fuzzy blob; but the averaging process would give a little square • Better idea: to eliminate edge effects, weight contribution of neighborhood pixels according to their closeness to the center, like so: “fuzzy blob”
  • 22. Gaussian Kernel • Constant factor at front makes volume sum to 1 (can be ignored, as we should re-normalize weights to sum to 1 in any case) 0.003 0.013 0.022 0.013 0.003 0.013 0.059 0.097 0.059 0.013 0.022 0.097 0.159 0.097 0.022 0.013 0.059 0.097 0.059 0.013 0.003 0.013 0.022 0.013 0.003 5 x 5, σ = 1 Source: C. Rasmussen
  • 23. Choosing kernel width • Gaussian filters have infinite support, but discrete filters use finite kernels Source: K. Grauman
  • 24. Choosing kernel width • Rule of thumb: set filter half-width to about 3 σ
  • 26. Mean vs. Gaussian filtering
  • 27. Gaussian filters • Remove “high-frequency” components from the image (low-pass filter) • 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
  • 28. Separability of the Gaussian filter Source: D. Lowe
  • 29. 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:
  • 30. Separability • Why is separability useful in practice?
  • 31. Noise • Salt and pepper noise: contains random occurrences of black and white pixels • Impulse noise: contains random occurrences of white pixels • Gaussian noise: variations in intensity drawn from a Gaussian normal distribution Original Gaussian noise Salt and pepper noise Impulse noise Source: S. Seitz
  • 32. Gaussian noise • Mathematical model: sum of many independent factors • Good for small standard deviations • Assumption: independent, zero-mean noise Source: M. Hebert
  • 33. Smoothing with larger standard deviations suppresses noise, but also blurs the image Reducing Gaussian noise
  • 34. Reducing salt-and-pepper noise What’s wrong with the results? 3x3 5x5 7x7
  • 35. Alternative idea: Median filtering • A median filter operates over a window by selecting the median intensity in the window • Is median filtering linear? Source: K. Grauman
  • 36. Median filter • What advantage does median filtering have over Gaussian filtering? • Robustness to outliers Source: K. Grauman
  • 37. Median filter Salt-and-pepper noise Median filtered Source: M. Hebert MATLAB: medfilt2(image, [h w])
  • 38. Median vs. Gaussian filtering 3x3 5x5 7x7 Gaussian Median
  • 39. Sharpening revisited What does blurring take away? original smoothed (5x5) – detail = sharpened = Let’s add it back: original detail + α
  • 40. Unsharp mask filter Gaussian unit impulse Laplacian of Gaussian ) ) 1 (( ) 1 ( ) ( g e f g f f g f f f − + ∗ = ∗ − + = ∗ − + α α α α image blurred image unit impulse (identity)
  • 41. Application: Hybrid Images A. Oliva, A. Torralba, P.G. Schyns, “Hybrid Images,” SIGGRAPH 2006
  • 42. Application: Hybrid Images A. Oliva, A. Torralba, P.G. Schyns, “Hybrid Images,” SIGGRAPH 2006