Linear filtering. Motivation: Image denoising How can we reduce noise in a photograph?

Slides:



Advertisements
Similar presentations
Lecture 2: Convolution and edge detection CS4670: Computer Vision Noah Snavely From Sandlot ScienceSandlot Science.
Advertisements

Spatial Filtering (Chapter 3)
Motion illusion, rotating snakes. Slide credit Fei Fei Li.
Computational Photography: Sampling + Reconstruction Connelly Barnes Slides from Alexei Efros and Steve Marschner.
Computational Photography CSE 590 Tamara Berg Filtering & Pyramids.
Computational Photography Prof. Feng Liu Spring /06/2015.
Lecture 4 Linear Filters and Convolution
Lecture 2: Filtering CS4670/5670: Computer Vision Kavita Bala.
Image processing. Image operations Operations on an image –Linear filtering –Non-linear filtering –Transformations –Noise removal –Segmentation.
Lecture 1: Images and image filtering
1 Image Filtering Readings: Ch 5: 5.4, 5.5, 5.6,5.7.3, 5.8 (This lecture does not follow the book.) Images by Pawan SinhaPawan Sinha formal terminology.
Linear filtering. Overview: Linear filtering Linear filters Definition and properties Examples Gaussian smoothing Separability Applications Denoising.
1 Linear image transforms Let’s start with a 1-D image (a “signal”): A very general and useful class of transforms are the linear transforms of f, defined.
CS443: Digital Imaging and Multimedia Filters Spring 2008 Ahmed Elgammal Dept. of Computer Science Rutgers University Spring 2008 Ahmed Elgammal Dept.
Announcements Kevin Matzen office hours – Tuesday 4-5pm, Thursday 2-3pm, Upson 317 TA: Yin Lou Course lab: Upson 317 – Card access will be setup soon Course.
15-463: Computational Photography Alexei Efros, CMU, Fall 2011 Many slides from Steve Marschner Sampling and Reconstruction.
1 Image filtering Images by Pawan SinhaPawan Sinha.
Lecture 2: Image filtering
Matlab Tutorial Continued Files, functions and images.
Linear filtering.
1 Image filtering Hybrid Images, Oliva et al.,
Slides from Alexei Efros, Steve Marschner Filters & fourier theory.
Linear Filtering About modifying pixels based on neighborhood. Local methods simplest. Linear means linear combination of neighbors. Linear methods simplest.
Basic Image Processing January 26, 30 and February 1.
Most slides from Steve Seitz
Slide credit Fei Fei Li. Image filtering Image filtering: compute function of local neighborhood at each position Really important! – Enhance images.
Computer Vision – Lecture 3
Applications of Image Filters Computer Vision CS 543 / ECE 549 University of Illinois Derek Hoiem 02/04/10.
Lecture 03 Area Based Image Processing Lecture 03 Area Based Image Processing Mata kuliah: T Computer Vision Tahun: 2010.
Linear Filters Monday, Jan 24 Prof. Kristen Grauman UT-Austin …
Linear Filters August 27 th 2015 Devi Parikh Virginia Tech 1 Slide credit: Devi Parikh Disclaimer: Many slides have been borrowed from Kristen Grauman,
Image Filtering Computer Vision CS 543 / ECE 549 University of Illinois Derek Hoiem 02/02/10.
Why is computer vision difficult?
Digital Image Processing Lecture 10: Image Restoration March 28, 2005 Prof. Charlene Tsai.
Chapter 5: Neighborhood Processing
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.
Digital Image Processing Lecture 10: Image Restoration
CSE 473/573 Computer Vision and Image Processing (CVIP) Ifeoma Nwogu Lecture 7 – Linear Filters 1.
Templates, Image Pyramids, and Filter Banks
Pixels and Image Filtering Computer Vision Derek Hoiem, University of Illinois 02/01/11 Graphic:
CS 691B Computational Photography
Pixels and Image Filtering Computational Photography Derek Hoiem 08/26/10 Graphic:
Reconnaissance d’objets et vision artificielle
CSE 185 Introduction to Computer Vision Image Filtering: Spatial Domain.
Grauman Today: Image Filters Smooth/Sharpen Images... Find edges... Find waldo…
Lecture 1: Images and image filtering CS4670/5670: Intro to Computer Vision Noah Snavely Hybrid Images, Oliva et al.,
CS558 C OMPUTER V ISION Lecture IV: Image Filter and Edge Detection Slides adapted from S. Lazebnik.
Spatial Filtering (Chapter 3) CS474/674 - Prof. Bebis.
HCI/ComS 575X: Computational Perception Instructor: Alexander Stoytchev
Image Filtering in Spatial domain
Slide credit Fei Fei Li.
Digital Image Processing Lecture 10: Image Restoration
Linear Filters and Edges Chapters 7 and 8
Linear Filters T-11 Computer Vision University of Houston
Linear Filters April 6th, 2017
Pixels and Image Filtering
Lecture 1: Images and image filtering
Recap from Wednesday Spectra and Color Light capture in cameras and humans.
Sampling and Reconstruction
Motion illusion, rotating snakes
Linear filtering.
Basic Image Processing
Digital Image Processing Week IV
Most slides from Steve Seitz
Linear Filtering CS 678 Spring 2018.
Lecture 2: Image filtering
Lecture 1: Images and image filtering
Image Filtering Readings: Ch 5: 5. 4, 5. 5, 5. 6, , 5
Most slides from Steve Seitz
All about convolution.
Presentation transcript:

Linear filtering

Motivation: Image denoising How can we reduce noise in a photograph?

Let’s replace each pixel with a weighted average of its neighborhood The weights are called the filter kernel What are the weights for the average of a 3x3 neighborhood? Moving average “box filter” Source: D. Lowe

Defining convolution 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 MATLAB functions: conv2, filter2, imfilter Convention: kernel is “flipped”

Key properties Linearity: filter(f 1 + f 2 ) = filter(f 1 ) + filter(f 2 ) 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 * b 1 ) * b 2 ) * b 3 ) This is equivalent to applying one filter: a * (b 1 * b 2 * b 3 ) 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

Dealing with edges 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 gg gg f gg g g f gg gg full samevalid

Dealing with edges What about missing pixel values? 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

Dealing with edges What about missing pixel values? 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 Original ? Source: D. Lowe

Practice with linear filters Original Filtered (no change) Source: D. Lowe

Practice with linear filters Original ? Source: D. Lowe

Practice with linear filters Original Shifted left By 1 pixel Source: D. Lowe

Practice with linear filters Original ? Source: D. Lowe

Practice with linear filters Original Blur (with a box filter) Source: D. Lowe

Practice with linear filters Original ? (Note that filter sums to 1) Source: D. Lowe

Practice with linear filters Original Sharpening filter - Accentuates differences with local average Source: D. Lowe

Sharpening Source: D. Lowe

Sharpening What does blurring take away? original smoothed (5x5) – detail = sharpened = Let’s add it back: originaldetail +

Smoothing with box filter revisited What’s wrong with this picture? What’s the solution? Source: D. Forsyth

Smoothing with box filter revisited What’s wrong with this picture? What’s the solution? To eliminate edge effects, weight contribution of neighborhood pixels according to their closeness to the center “fuzzy blob”

Gaussian Kernel Constant factor at front makes volume sum to 1 (can be ignored when computing the filter values, as we should renormalize weights to sum to 1 in any case) x 5,  = 1 Source: C. Rasmussen

Gaussian Kernel Standard deviation  : determines extent of smoothing Source: K. Grauman σ = 2 with 30 x 30 kernel σ = 5 with 30 x 30 kernel

Choosing kernel width The Gaussian function has infinite support, but discrete filters use finite kernels Source: K. Grauman

Choosing kernel width Rule of thumb: set filter half-width to about 3σ

Gaussian vs. box filtering

Gaussian filters Remove high-frequency components from the image (low-pass filter) Convolution with self is another Gaussian So can smooth with small-  kernel, repeat, and get same result as larger-  kernel would have Convolving two times with Gaussian kernel with std. dev. σ is same as convolving once with kernel with std. dev. Separable kernel Factors into product of two 1D Gaussians Discrete example: Source: K. Grauman

Separability of the Gaussian filter Source: D. Lowe

Why is separability useful? Separability means that a 2D convolution can be reduced to two 1D convolutions (one among rows and one among columns) What is the complexity of filtering an n × n image with an m × m kernel? O(n 2 m 2 ) What if the kernel is separable? O(n 2 m)

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 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? 3x35x57x7

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 Is median filtering linear? Let’s try filtering

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])

Gaussian vs. median filtering 3x35x57x7 Gaussian Median

Review: Image filtering Convolution Image smoothing Gaussian filter Nonlinear filtering

Sharpening revisited Source: D. Lowe

Sharpening revisited What does blurring take away? original smoothed (5x5) – detail = sharpened = Let’s add it back: originaldetail + α

Unsharp mask filter Gaussian unit impulse Laplacian of Gaussian image blurred image unit impulse (identity)

Application: Hybrid Images A. Oliva, A. Torralba, P.G. Schyns, “Hybrid Images,” SIGGRAPH 2006 “Hybrid Images,”

Application: Hybrid Images A. Oliva, A. Torralba, P.G. Schyns, “Hybrid Images,” SIGGRAPH 2006 “Hybrid Images,” Gaussian Filter Laplacian Filter