Image filtering

Reading
Forsyth & Ponce, chapters 8.1-8.2
http://www.cs.washington.edu/education/courses/490cv/02wi/readings/book-7-revised-a-indx.pdf

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 )
Realistically, we expect the image only to be defined over a rectangle, with a finite range:
f: [a,b]x[c,d] à [0,1]
A color image is just three functions pasted together.  We can write this as a “vector-valued” function:

Images as functions

What is a digital image?
In computer vision we usually operate on digital (discrete) images:
Sample the 2D space on a regular grid
Quantize each sample (round to nearest integer)
If our samples are D apart, we can write this as:
f[i ,j] = Quantize{ f(i D, j D) }
The image can now be represented as a matrix of integer values

Image processing
An image processing operation typically defines a new image g in terms of an existing image f.
We can transform either the domain or the range of f.
Range transformation:
What’s kinds of operations can this perform?

Image processing
Some operations preserve the range but change the domain of f :
What kinds of operations can this perform?

Noise
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

Practical noise reduction
How can we “smooth” away noise in a single image?

Mean filtering

Slide 11

Mean filtering

Effect of mean filters

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.”
The above allows negative filter indices.  When you implement need to use:  H[u+k,v+k] instead of H[u,v]

Mean kernel
What’s the kernel for a 3x3 mean filter?

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:

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?

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?

Comparison: salt and pepper noise

Comparison: Gaussian noise