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