Spatial Filtering (Chapter 3) : CS474/674 - Prof. Bebis

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 47

Spatial Filtering (Chapter 3)

CS474/674 - Prof. Bebis

Spatial Filtering Methods


(or Mask Processing Methods)

output image

Spatial Filtering
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)


Spatial filtering are defined by:
(1) A neighborhood
(2) An operation that is performed on the pixels inside the
neighborhood
output image

Spatial Filtering (contd)


Typically, the neighborhood is rectangular and its size
is much smaller than that of f(x,y)
- e.g., 3x3 or 5x5

Spatial filtering (contd)


Example: apply a mask of weights

output image

Spatial filtering (contd)


Assume the origin of the
mask is the center of the
mask.
for a 3 x 3 mask:
g ( x, y )

w(s, t ) f ( x s, y t )

s 1 t 1

for a K x K mask:
g ( x, y )

K /2

K /2

s K /2 t K /2

w( s, t ) f ( x s, y t )

Spatial Filtering (contd)


A filtered image is generated as the center of the mask
moves to every pixel in the input image.

output image

Handling Pixels Close to Boundaries


pad with zeroes
0 0 0 .0

0 0 0 .0

or

Handling Pixels Close to Boundaries (contd)

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


Two main linear spatial filtering methods:
Correlation
Convolution

Correlation
w(i,j)

g(i,j)
Output
Image

f(i,j)

g ( x, y ) w( x, y ) f ( x, y )

K /2

K /2

s K /2 t K /2

w( s, t ) f ( x s, y t )

Correlation (contd)
Often used in applications where
we need to measure the similarity
between images or parts of images
(e.g., pattern matching).

Convolution
Similar to correlation except that the mask is first flipped
both horizontally and vertically.

g ( x, y ) w( x, y ) f ( x, y )

K /2

K /2

w( s, t ) f ( x s, y t )

s K / 2 t K / 2

Note: if w(x,y) is symmetric, that is w(x,y)=w(-x,-y), then


convolution is equivalent to correlation!

Example

Correlation:

Convolution:

How do we choose the elements of a mask?


Typically, by sampling certain functions.

Gaussian

1st derivative
of Gaussian

2nd derivative
of Gaussian

Filters
Smoothing (i.e., low-pass filters)
Reduce noise and small details.
The elements of the mask must be positive.
Sum of mask elements is 1

Gaussian

Filters
Sharpening (i.e., high-pass filters)
Highlight fine detail or enhance detail that has been blurred.
The elements of the mask contain both positive and negative
weights.
Sum of the mask weights is 0

1st derivative
of Gaussian

2nd derivative
of Gaussian

Smoothing Filters: Averaging


(Low-pass filtering)

Smoothing Filters: Averaging (contd)


Mask size determines the degree of smoothing and 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 samples of the Gaussian function

= 1.4

mask size:

Smoothing filters: Gaussian (contd)


As increases, more samples must be obtained to represent
the Gaussian function accurately.
Therefore, controls the amount of smoothing

=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 (High Pass filtering)


Useful for emphasizing transitions in image intensity (e.g.,
edges).

Sharpening Filters (contd)


Note that the response of high-pass filtering might be negative.
Values must be re-mapped to [0, 255]
original image

sharpened images

Sharpening Filters: Unsharp Masking


Obtain a sharp image by subtracting a lowpass filtered
(i.e., smoothed) image from the original image:

Sharpening Filters: High Boost


Image sharpening emphasizes edges but details (i.e., low
frequency components) might be lost.
High boost filter: amplify input image, then subtract a
lowpass image.

(A-1)

Sharpening Filters: Unsharp Masking (contd)


If A=1, we get a high pass filter
If A>1, part of the original image is added back to the high
pass filtered image.

Sharpening Filters: Unsharp Masking (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 can be computed using the
gradient.

Sharpening Filters: Derivatives (contd)


The gradient is a vector which has magnitude and direction:

f
f
|| |
or |
x
y
(approximation)

Sharpening Filters: Derivatives (contd)


Magnitude: provides information about edge strength.
Direction: perpendicular to the direction of the edge.

Sharpening Filters: Gradient Computation


Approximate gradient using finite differences.

sensitive to vertical edges


x
sensitive to horizontal edges

Sharpening Filters: Gradient Computation


(contd)

Example
f
x

f
y

Sharpening Filters: Gradient Computation


(contd)
We can implement

and

using the masks:


(x+1/2,y)

good approximation
at (x+1/2,y)

(x,y+1/2)

*
*

good approximation
at (x,y+1/2)

Example: approximate gradient at z5

Sharpening Filters: Gradient Computation


(contd)
A different approximation of the gradient:
good approximation
(x+1/2,y+1/2)

We can implement

and

using the following masks:

Sharpening Filters: Gradient Computation


(contd)
Example: approximate gradient at z5

Other approximations

Sobel

Example
f
x

f
y

Sharpening Filters: Laplacian


The Laplacian (2nd derivative) is defined as:

(dot product)

Approximate
derivatives:

Sharpening Filters: Laplacian (contd)


Laplacian Mask

detect zero-crossings

Sharpening Filters: Laplacian (contd)

Laplacian

Sobel

You might also like