Images and
Transformations
Reading
|
|
|
Forsyth & Ponce, chapter 7 |
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 transformations
|
|
|
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? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Many image transforms operate both on
the domain and the range |
Linear image transforms
|
|
|
Let’s start with a 1-D image (a
“signal”): |
Linear image transforms
|
|
|
Let’s start with a 1-D image (a
“signal”): |
Linear image transforms
|
|
|
Let’s start with a 1-D image (a
“signal”): |
Linear image transforms
|
|
|
Another example is the discrete Fourier
transform |
|
|
|
|
|
Each row of M is a sinusoid
(complex-valued) |
|
The frequency increases with the row
number |
|
|
Linear shift-invariant
filters
2D linear transforms
|
|
|
We can do the same thing for 2D images
by concatenating all of the rows into one long vector: |
|
|
|
|
2D filtering
|
|
|
A 2D image f[i,j] can be filtered by a
2D kernel h[u,v] to produce an output image g[i,j]: |
|
|
|
|
|
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] |
Noise
|
|
|
|
Filtering 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 |
Mean filtering
Slide 17
Mean filtering
Effect of mean filters
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? |
Convolution theorems
|
|
|
Let F be the 2D Fourier transform of f,
H of h |
|
Define |
|
Convolution theorem: Convolution in the
spatial (image) domain is equivalent to multiplication in the frequency
(Fourier) domain. |
|
|
|
|
|
Symmetric theorem: Convolution in the frequency
domain is equivalent to multiplication in the spatial domain. |
|
|
|
|
|
|
|
Why is this useful? |
2D convolution theorem
example
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