Spatial Filtering (Chapter 3)
CS6632 DR IMREN DINC
Spatial Filtering Methods
(or Mask Processing Methods)
output image
Spatial Filtering (contd)
The word filtering has been borrowed from the frequency domain.
Filters are classified as:
Low-pass (i.e., preserve low frequencies)
High-pass (i.e., preserve high frequencies)
Band-pass (i.e., preserve frequencies within a band)
Band-reject (i.e., reject frequencies within a band)
Spatial Filtering (contd)
Need to define:
(1) a neighborhood (or mask)
(2) an operation
output image
Spatial Filtering Neighborhood (or Mask)
Typically, the neighborhood is rectangular and its size
is much smaller than that of f(x,y)
- e.g., 3x3 or 5x5
Spatial filtering - Operation
Example: weighted sum of input pixels.
mask
weights:
output image
A filtered image
is generated as the
center of the mask
moves to every
pixel in the input
image.
Handling Pixels Close to Boundaries
pad with zeroes
0 0 0 .0
0 0 0 .0
or
Linear vs Non-Linear
Spatial Filtering Methods
A filtering method is linear when the output is a weighted sum of
the input pixels.
Methods that do not satisfy the above property are called nonlinear.
e.g.,
Linear Spatial Filtering Methods
Main linear spatial filtering methods:
Correlation
Convolution
Correlation
w(i,j)
g(i,j)
Output
Image
f(i,j)
g (i, j=
) w(i, j ) f (i, j=
)
K /2
K /2
w( s, t ) f (i + s, j + t )
s=
K /2 t =
K /2
Correlation (contd)
Often used in applications where
we need to measure the similarity
between images or parts of images
(e.g., template matching).
Convolution
Similar to correlation except that the mask is first flipped both
horizontally and vertically.
g (i, j=
) w(i, j ) f (i, j=
)
K /2
K /2
w( s, t ) f (i s, j t )
s=
K /2 t =
K /2
Note: if w(i, j) is symmetric, that is w(i, j)=w(-i,-j), then convolution is
equivalent to correlation!
Example
Correlation:
Convolution:
How do we choose the mask weights?
Typically, by sampling certain functions:
Gaussian
1st derivative
of Gaussian
2nd derivative
of Gaussian
Filters
We will mainly focus on two types of filters:
Smoothing (low-pass)
Sharpening (high-pass)
Smoothing Filters (low-pass)
Useful for reducing noise and eliminating small details.
The elements of the mask must be positive.
Sum of mask elements is 1 (after normalization).
Gaussian
Smoothing filters Example
Useful for reducing noise and eliminating
small details.
input image
smoothed image
Sharpening Filters (high-pass)
Useful for highlighting fine details.
The elements of the mask contain both positive and negative
weights.
Sum of mask elements is 0.
1st derivative
of Gaussian
2nd derivative
of Gaussian
Sharpening Filters (contd)
Useful for highlighting fine details.
e.g., emphasize edges
Sharpening Filters - Example
Note that the response of sharpening might be negative.
Values must be re-mapped to [0, 255]
input image
sharpened image
Smoothing Filters
Averaging
Gaussian
Median filtering (non-linear)
Smoothing Filters: Averaging
Smoothing Filters: Averaging (contd)
Mask size determines the degree of smoothing (loss of detail).
original
3x3
15x15
5x5
25x25
7x7
Smoothing Filters: Averaging (contd)
Example: extract largest, brightest objects
15 x 15 averaging
image thresholding
Smoothing filters: Gaussian
The weights are Gaussian samples:
= 1.4
mask size is
a function of :
Smoothing filters: Gaussian (contd)
controls the amount of smoothing
As increases, more samples must be obtained to represent
the Gaussian function accurately.
=3
Smoothing filters: Gaussian (contd)
Averaging vs Gaussian Smoothing
Averaging
Gaussian
Smoothing Filters: Median Filtering
(non-linear)
Very effective for removing salt and pepper noise (i.e., random
occurrences of black and white pixels).
averaging
median
filtering
Smoothing Filters: Median Filtering (contd)
Replace each pixel by the median in a neighborhood around the
pixel.
Sharpening Filters
Unsharp masking
High Boost filter
Gradient (1st derivative)
Laplacian (2nd derivative)
Sharpening Filters: Unsharp Masking
Obtain a sharp image by subtracting a lowpass filtered (i.e.,
smoothed) image from the original image:
=
(after contrast
enhancement)
Sharpening Filters: High Boost
Image sharpening emphasizes edges but low frequency components
are lost.
High boost filter: amplify input image, then subtract a lowpass
image.
(A-1)
Sharpening Filters: High Boost (contd)
If A=1, we get unsharp masking.
If A>1, part of the original image is added back to the high pass
filtered image.
One way to implement high boost filtering is using the masks below:
Sharpening Filters: High Boost (contd)
A=1.4
A=1.9
Sharpening Filters: Derivatives
Taking the derivative of an image results in sharpening the image.
The derivative of an image (i.e., 2D signal) can be computed using the
gradient.
Gradient
The gradient is a vector which has magnitude and direction:
(approximation)
f
f
|+|
|
or |
x
y
Gradient (contd)
Gradient magnitude: provides information about edge strength.
Gradient direction: perpendicular to the direction of the edge.
Example: visualize partial derivatives
f
x
f
y
Implement Gradient Using Masks (contd)
Prewitt
Sobel
Example: Gradient Magnitude Image
Gradient Magnitude
f
x
f
y
(isotropic)
Laplacian
The Laplacian (2nd derivative) is defined as:
(dot product)
Approximate
2nd derivatives:
Laplacian (contd)
Laplacian Mask
Edges can be found
by detect the zero-crossings
Example: Laplacian vs Gradient
Laplacian
Sobel