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