0% found this document useful (0 votes)
24 views25 pages

Filtering: Most Slides From Steve Seitz

The document discusses various types of image filtering operations. It defines digital images as discrete samples on a regular grid that are quantized to integer values. Image processing transforms can change either the domain or range of an image function. Common types of noise include salt and pepper, impulse, and Gaussian noise. Mean filtering replaces each pixel with the average value of neighboring pixels. Gaussian filtering applies weighted averages where nearby pixels are weighted more than distant ones. Median filtering selects the median intensity value in a window, making it robust to outliers unlike mean filtering.

Uploaded by

Ahmed Said
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views25 pages

Filtering: Most Slides From Steve Seitz

The document discusses various types of image filtering operations. It defines digital images as discrete samples on a regular grid that are quantized to integer values. Image processing transforms can change either the domain or range of an image function. Common types of noise include salt and pepper, impulse, and Gaussian noise. Mean filtering replaces each pixel with the average value of neighboring pixels. Gaussian filtering applies weighted averages where nearby pixels are weighted more than distant ones. Median filtering selects the median intensity value in a window, making it robust to outliers unlike mean filtering.

Uploaded by

Ahmed Said
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 25

Filtering

Most slides from Steve Seitz

1
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:

 r ( x, y ) 
f ( x, y )   g ( x, y ) 
 
 b( x, y ) 

2
Images as functions

3
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

4
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?

5
Image processing

Some operations preserve the range but change


the domain of f :

What kinds of operations can this perform?

6
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

7
Additive noise
We often assume the noise is additive

I = S + N. Noise doesn’t depend on signal.

I i  si  ni with E (ni )  0
We’ll consider:

si determinis tic.
ni , n j independen t for ni  n j
ni , n j identicall y distribute d

8
Practical noise reduction

How can we “smooth” away noise in a single


image?

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 100 130 110 120 110 0 0

0 0 0 110 90 100 90 100 0 0

0 0 0 130 100 90 130 110 0 0

0 0 0 120 100 130 110 120 0 0

0 0 0 90 110 80 120 100 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

9
Mean filtering
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 90 90 90 90 90 0 0
0 0 0 90 90 90 90 90 0 0
0 0 0 90 90 90 90 90 0 0
0 0 0 90 0 90 90 90 0 0
0 0 0 90 90 90 90 90 0 0
0 0 0 0 0 0 0 0 0 0
0 0 90 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0

10
11
Mean filtering
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 90 90 90 90 90 0 0
0 0 0 90 90 90 90 90 0 0
0 0 0 90 90 90 90 90 0 0
0 0 0 90 0 90 90 90 0 0
0 0 0 90 90 90 90 90 0 0
0 0 0 0 0 0 0 0 0 0
0 0 90 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0

0 10 20 30 30 30 20 10
0 20 40 60 60 60 40 20
0 30 60 90 90 90 60 30
0 30 50 80 80 90 60 30
0 30 50 80 80 90 60 30
0 20 30 50 50 60 40 20
10 20 30 30 30 30 20 10
10 10 10 0 0 0 0 0

12
Effect of mean filters

13
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]
14
Mean kernel

What’s the kernel for a 3x3 mean filter?

0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 90 90 90 90 90 0 0
0 0 0 90 90 90 90 90 0 0
0 0 0 90 90 90 90 90 0 0
0 0 0 90 0 90 90 90 0 0
0 0 0 90 90 90 90 90 0 0
0 0 0 0 0 0 0 0 0 0
0 0 90 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0

15
Gaussian Filtering

A Gaussian kernel gives less weight to pixels


further from the center of the window

0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 90 90 90 90 90 0 0
0 0 0 90 90 90 90 90 0 0 1 2 1
0 0 0 90 90 90 90 90 0 0
2 4 2
0 0 0 90 0 90 90 90 0 0
1 2 1
0 0 0 90 90 90 90 90 0 0
0 0 0 0 0 0 0 0 0 0
0 0 90 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0

This kernel is an approximation of a Gaussian


function:

16
Gaussian Averaging

Rotationally symmetric.

Weights nearby pixels


more than distant ones.

 This makes sense


as probabalistic
inference.

A Gaussian gives a good


model of a fuzzy blob

17
An Isotropic Gaussian
The picture shows a
smoothing kernel
proportional to

 x 2  y 2 
exp   
2
  2 
(which is a reasonable
model of a circularly
symmetric fuzzy blob)

18
Mean vs. Gaussian filtering

19
Efficient Implementation

Both, the BOX filter and the Gaussian filter are


separable:

 First convolve each row with a 1D filter


 Then convolve each column with a 1D filter.

20
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?

21
Linear Shift-Invariance

A tranform T{} is

Linear if:

T(a g(x,y)+b h(x,y)) = a T{g(x,y)} + b T(h(x,y))

Shift invariant if:

Given T(i(x,y)) = o(x,y)

T{i(x-x0, y- y0)} = o(x-x0, y-y0)

22
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?

Median filter is non linear

23
Comparison: salt and pepper noise

24
Comparison: Gaussian noise

25

You might also like