Image Filtering Readings: Ch 5: 5. 4, 5. 5, 5. 6, , 5

Slides:



Advertisements
Similar presentations
Linear Filtering – Part I Selim Aksoy Department of Computer Engineering Bilkent University
Advertisements

Spatial Filtering (Chapter 3)
Topic 6 - Image Filtering - I DIGITAL IMAGE PROCESSING Course 3624 Department of Physics and Astronomy Professor Bob Warwick.
Sliding Window Filters and Edge Detection Longin Jan Latecki Computer Graphics and Image Processing CIS 601 – Fall 2004.
CS 4487/9587 Algorithms for Image Analysis
Lecture 4 Linear Filters and Convolution
1 Image filtering Hybrid Images, Oliva et al.,
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.
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.
1 Image filtering Images by Pawan SinhaPawan Sinha.
1 Image filtering
Lecture 2: Image filtering
1 Images and Transformations Images by Pawan SinhaPawan Sinha.
1 Image filtering Hybrid Images, Oliva et al.,
Image Filtering. Problem! Noise is a problem, even in images! Gaussian NoiseSalt and Pepper Noise.
Most slides from Steve Seitz
CS 376b Introduction to Computer Vision 02 / 26 / 2008 Instructor: Michael Eckmann.
HCI/ComS 575X: Computational Perception Instructor: Alexander Stoytchev
University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell Image processing.
Linear Filtering – Part I Selim Aksoy Department of Computer Engineering Bilkent University
Lecture 03 Area Based Image Processing Lecture 03 Area Based Image Processing Mata kuliah: T Computer Vision Tahun: 2010.
CS 556 – Computer Vision Image Basics & Review. What is an Image? Image: a representation, resemblance, or likeness An image is a signal: a function carrying.
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.
Machine Vision ENT 273 Image Filters Hema C.R. Lecture 5.
Digital Image Processing Lecture 16: Segmentation: Detection of Discontinuities Prof. Charlene Tsai.
Intelligent Vision Systems ENT 496 Image Filtering and Enhancement Hema C.R. Lecture 4.
Visual Computing Computer Vision 2 INFO410 & INFO350 S2 2015
CS 691B Computational Photography
CSE 6367 Computer Vision Image Operations and Filtering “You cannot teach a man anything, you can only help him find it within himself.” ― Galileo GalileiGalileo.
Digital Image Processing Lecture 16: Segmentation: Detection of Discontinuities May 2, 2005 Prof. Charlene Tsai.
Machine Vision Edge Detection Techniques ENT 273 Lecture 6 Hema C.R.
Sliding Window Filters Longin Jan Latecki October 9, 2002.
Lecture 1: Images and image filtering CS4670/5670: Intro to Computer Vision Noah Snavely Hybrid Images, Oliva et al.,
1 Edge Operators a kind of filtering that leads to useful features.
Spatial Filtering (Chapter 3) CS474/674 - Prof. Bebis.
HCI/ComS 575X: Computational Perception Instructor: Alexander Stoytchev
Correlation and Convolution They replace the value of an image pixel with a combination of its neighbors Basic operations in images Shift Invariant Linear.
Digital Image Processing Lecture 16: Segmentation: Detection of Discontinuities Prof. Charlene Tsai.
ECE 692 – Advanced Topics in Computer Vision
Filtering – Part I Gokberk Cinbis Department of Computer Engineering
Introduction Computer vision is the analysis of digital images
Digital Image Processing
- photometric aspects of image formation gray level images
IMAGE PROCESSING AKSHAY P S3 EC ROLL NO. 9.
Image filtering Hybrid Images, Oliva et al.,
Recap from Wednesday Spectra and Color Light capture in cameras and humans.
Introduction Computer vision is the analysis of digital images
Filters (Smoothing, Edge Detection)
Image filtering Images by Pawan Sinha.
HCI / CprE / ComS 575: Computational Perception
a kind of filtering that leads to useful features
Image filtering Images by Pawan Sinha.
a kind of filtering that leads to useful features
Image Processing Today’s readings For Monday
Image filtering Images by Pawan Sinha.
Linear filtering.
Digital Image Processing Week IV
Most slides from Steve Seitz
Image filtering Images by Pawan Sinha.
Image filtering
Image filtering
Linear Operations Using Masks
Department of Computer Engineering
Lecture 2: Image filtering
Introduction Computer vision is the analysis of digital images
Most slides from Steve Seitz
Image Filtering with GLSL
Lecture 7 Spatial filtering.
Image Processing.
Presentation transcript:

Image Filtering Readings: Ch 5: 5. 4, 5. 5, 5. 6,5. 7. 3, 5 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 Sinha formal terminology filtering with masks mean filter Gaussian filter general cross-correlation convolution median filter

What is an image? We can think of an image as a function, f, from R2 to R: f( x, y ) gives the intensity at position ( x, y ). It is a continuous function, usually over a rectangle. A color image is just three functions pasted together. We can write this as a “vector-valued” function: As opposed to [0..255] Courtesy of NASA

Images as functions These are 4 different ways that people use to show gray tones, just for illustration. Render with scanalyze???? The 3D shows the “height” of each pixel.

Digital images In computer vision we usually operate on digital (discrete) images: Sample the continuous 2D space on a regular grid. Quantize each sample by rounding to nearest integer. The image can now be represented as a matrix of integer values.

Filtering Operations Use Masks Masks operate on a neighborhood of pixels. A mask of coefficients is centered on a pixel. The mask coefficients are multiplied by the pixel values in its neighborhood and the products are summed. The result goes into the corresponding pixel position in the output image. 36 36 36 36 36 36 36 45 45 45 36 45 45 45 54 36 45 54 54 54 45 45 54 54 54 ** ** ** ** ** ** 39 ** ** ** 1/9 1/9 1/9 3x3 Mask Input Image Output Image

Application: Noise Filtering Image processing is useful for noise reduction... Common types of 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 Salt and pepper and impulse noise can be due to transmission errors (e.g., from deep space probe), dead CCD pixels, specks on lens We’re going to focus on Gaussian noise first. If you had a sensor that was a little noisy and measuring the same thing over and over, how would you reduce the noise?

Practical noise reduction How can we “smooth” away noise in a single image? 100 130 110 120 90 80 Replace each pixel with the average of a kxk window around it

Mean filtering 90 Replace each pixel with the average of a kxk window around it

Mean filtering Input Image Output Image Sum the values in a 3x3 nbd. 90 Input Image Sum the values in a 3x3 nbd. Divide by 9. Replace center. Replace each pixel with the average of a kxk window around it What happens if we use a larger filter window? 10 20 30 40 60 90 50 80 Output Image

Effect of mean filters Demo with photoshop

Generalization: Cross-Correlation Filtering Let’s write this down as an equation. Assume the averaging window is (2k+1)x(2k+1): We can generalize this idea by allowing different weights for different neighboring pixels: This is called a cross-correlation operation and written: H is called the “filter,” “kernel,” or “mask.”

Mean Kernel What’s the kernel for a 3x3 mean filter? In other words, what do you multiply each pixel by when you find the mean? 90 ones, divide by 9

Mean Kernel mean filter 1/9 What’s the kernel for a 3x3 mean filter? In other words, what do you multiply each pixel by when you find the mean? mean filter 90 1 1/9 ones, divide by 9

Gaussian Filtering A Gaussian kernel gives less weight to pixels further from the center of the window This kernel is an approximation of a Gaussian function: 90 1 2 4

Mean vs. Gaussian filtering

Convolution A convolution operation is a cross-correlation where the filter is flipped both horizontally and vertically before being applied to the image: It is written: Suppose H is a Gaussian or mean kernel. How does convolution differ from cross-correlation? In computer vision, we tend to use symmetric kernels most of the time, and we tend to call them convolution kernels. In EE, convolution is useful for solving linear systems problems. They are the same for filters that have both horizontal and vertical symmetry.

Convolution vs. Correlation When do they differ Convolution vs. Correlation When do they differ? 1D Example from Signal Processing Correlation Mask: w = 1 2 3 2 0 Signal: 0 0 0 1 0 0 0 0 Zero padding 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 Apply mask to first position 1 2 3 2 0 Produces a 0 for first out Apply mask to 4th position Produces a 0 Final result: 0 0 0 0 2 3 2 1 0 0 0 0 Remove padding: 0 0 2 3 2 1 0 0 Convolution Mask: w' = 0 2 3 2 1 Signal: 0 0 0 1 0 0 0 0 Zero padding 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 Apply mask to first position 0 2 3 2 1 Produces a 0 for first out Apply mask to 4th position Produces a 1 Final results: 0 0 0 1 2 3 2 0 0 0 0 0 Remove padding: 0 1 2 3 2 0 0 0

Convolution Examples http://www.aishack.in/2010/08/image-convolution-examples/

Convolution Examples

Convolution Examples

Convolution Examples

Median filters A Median Filter operates over a window by selecting the median intensity in the window. What advantage does a median filter have over a mean filter? Is a median filter a kind of convolution? No, it’s called a nonlinear filter. 45 49 57 43 53 84 43 45 49 50 51 52 53 57 84 Better at salt’n’pepper noise Not convolution: try a region with 1’s and a 2, and then 1’s and a 3

Comparison: salt and pepper noise

Comparison: Gaussian noise

More Comparisons: Mean vs. Median using Matlab http://www.mathworks.com/help/toolbox/images/f11-12251.html

Edge Detection Basic idea: look for a neighborhood with strong signs of change. Problems: neighborhood size how to detect change 81 82 26 24 82 33 25 25

Differential Operators attempt to approximate the gradient at a pixel via masks threshold the gradient to select the edge pixels What’s a gradient? Def: the gradient of a scalar function f(x1, x2, ... xn) is denoted by f (del f) and is defined by: f = (f/x1, f/x2, . . . f/xn) What’s a derivative?

Example: Sobel Operator -1 0 1 1 2 1 Sx = -2 0 2 Sy = 0 0 0 -1 0 1 -1 -2 -1 On a pixel of the image I let gx be the response to mask Sx let gy be the response to mask Sy Then the gradient is I = [gx gy]T g = (gx2 + gy2 )1/2 is the gradient magnitude.  = atan2(gy,gx) is the gradient direction.

Sobel Operator on Blocks Image original image gradient thresholded magnitude gradient magnitude

Some Well-Known Masks for Computing Gradients Sobel: Prewitt: Roberts Sx Sy -1 0 1 -2 0 2 1 2 1 0 0 0 -1 -2 -1 -1 0 1 1 1 1 0 0 0 -1 -1 -1 0 1 -1 0 0 -1