0% found this document useful (0 votes)
29 views56 pages

Lecture 15

This document provides an outline for a lecture on non-linear image filters, including median filters and morphological filters. It begins with a recap of mean filters and introduces integral images as a method to efficiently compute mean filters in O(1) time per pixel. It then discusses median filters, which replace the center pixel value with the median of neighboring pixels. Several algorithms for computing median filters are presented, with the most efficient requiring only O(n) time per pixel, where n is the size of the neighborhood. Gaussian compositions, which combine filters like unsharp masking and difference of Gaussians, are also mentioned.

Uploaded by

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

Lecture 15

This document provides an outline for a lecture on non-linear image filters, including median filters and morphological filters. It begins with a recap of mean filters and introduces integral images as a method to efficiently compute mean filters in O(1) time per pixel. It then discusses median filters, which replace the center pixel value with the median of neighboring pixels. Several algorithms for computing median filters are presented, with the most efficient requiring only O(n) time per pixel, where n is the size of the neighborhood. Gaussian compositions, which combine filters like unsharp masking and difference of Gaussians, are also mentioned.

Uploaded by

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

Image Processing,

Retrieval, and Analysis (I)


Prof. Christian Bauckhage
Outline
Lecture 15

Recap

Non-Linear Filters
Median Filters
Morphological Filters
Bilateral Filters

Gaussian Compositions
Unsharp Masking
Difference of Gaussians

Summary
Recap

mean filter (I)


I given intensity image f , consider the m × n neighborhood

Nxy = f [i, j]
m
of the pixel at (x, y) where x − 2 6 i 6 x + m2 , y − n
2 6j6y+ n
2

I we also write

Nxy = p0 , p1 , . . . , pq−1

where q = mn
Recap

mean filter (II)


I mean filter
1 X 1 X
p0 = pi = pi
mn mn
pi ∈Np i
Recap

mean filter (II)


I mean filter
1 X 1 X
p0 = pi = pi
mn mn
pi ∈Np i

I weighted mean filter


P
i wi pi
p = P
0
i wi
Recap

mean filter (II)


I mean filter
1 X 1 X
p0 = pi = pi
mn mn
pi ∈Np i

I weighted mean filter


P
i wi pi
p = P
0
i wi

note:
the Gaussian filter is a specific weighted mean filter
Recap

mean filter (III)


I using convolutions, mean filtering requires O(mn) per pixel
Recap

mean filter (III)


I using convolutions, mean filtering requires O(mn) per pixel
I using integral images, this can be reduced to O(1)
Recap

mean filter (III)


I using convolutions, mean filtering requires O(mn) per pixel
I using integral images, this can be reduced to O(1)
I if
x+ m n
X Xy+ 2
2
f [i, j] X
x X
y
c[x, y, m, n] = and C[x, y] = c[i, j]
m n mn
i=x− 2 j=y− 2 i=0 j=0

then
h m ni h m n i
c[x, y, m, n] = C x + , y + − C x + ,y − − 1
h 2m 2
ni h2 m
2
n i
− C x − − 1, y + + C x − − 1, y − − 1
2 2 2 2
C β C C α C
c c c c
y y y y

δ γ

x x x x
Recap

integral images
I dynamic programming allows for efficient computation of
integral images, simply consider that
C[x, y] = c[x, y] + C[x, y − 1] + C[x − 1, y] − C[x − 1, y − 1]

x
Recap

integral images
I dynamic programming allows for efficient computation of
integral images, simply consider that
C[x, y] = c[x, y] + C[x, y − 1] + C[x − 1, y] − C[x − 1, y − 1]

y y y y

x x x x
Non-Linear Filters

median filter

given f and Nxy , consider ordered set Rxy = ri ∈ Nxy ri 6 ri+1

I

I the element r q−1 is called the median of Nxy


2

I the operation g[x, y] ← r q−1 yields a median filtered version of f


2

example

image f 3 × 3 median g
Non-Linear Filters

algorithm I: naı̈ve median

for all y = 0 . . . M − 1 I average effort per pixel


for all x = 0 . . . N − 1
sanity check for x and y
Nxy = ∅
O(q log q)
for all j = − m2 . . . m2
for all i = − n2 . .. n2 I rather slow, because if

Nxy = Nxy ∪ f [y + j, x + i]
Rxy = qsort(Nxy ) q = mn
g[y, x] ← r q−1
2
effort becomes large
Non-Linear Filters

observation

I the median is the p(x)


0.5 quantile of a
given distribution

x
P (x)

1
2

med{p(x)} x
Non-Linear Filters

histograms
I histograms H(i) count things

I e.g. the number of occurrences of intensities i in an image

I when normalized, histograms correspond to probability


mass functions

Pi
H(i) C(i) = k=0 H(k)
Non-Linear Filters

algorithm II: Huang, 1979

for all y = 0 . . . M − 1
for all x = 0 . . . N − 1
I sketch
sanity check for x and y
if (x, y) is UL corner
initialize histogram H
else
for all k = − n2 . . . n2 y − +
sub f [y + k, x − 2n − 1] from H
add f [y + k, x + 2n ] to H
P
q = i Hi
s=0
for all i = 0 . . . #colors x

s = s + Hi
if s > q/2
I effort per pixel
median = i
O(n) + 256 ops max
= O(n) + O(1)
= O(n)
Non-Linear Filters

observation
I for disjoint sets A and B, we have

H(A ∪ B) = H(A) + H(B)

⇒ idea: maintain a histogram hx for each column x of f


Non-Linear Filters

algorithm III: Perreault & Hébert, 2007

for all y = 0 . . . M − 1
for all x = 0 . . . N − 1
I sketch
sanity check for x and y
if y is uppermost row −
initialize hx
if (x, y) is UL corner y

initialize H
+
else
sub f [y − m2 − 1, x + n2 ] from hx+ n
2
add f [y + m2 , x + n2 ] to hx+ n
2 x
H = H − hx− n −1 + hx+ n
2 2
s=0
...
y − +

x
Non-Linear Filters

algorithm III: Perreault & Hébert, 2007


I effort per pixel (8-bit gray scale image):
1. 1 addition and 1 subtraction for hx+ n2
2. 256 addition and 256 subtraction for H = H − hx− n2 −1 + hx+ n2
3. max. 256 operations for computing s
⇒ O(1)
Non-Linear Filters

algorithm III: Perreault & Hébert, 2007


I effort per pixel (8-bit gray scale image):
1. 1 addition and 1 subtraction for hx+ n2
2. 256 addition and 256 subtraction for H = H − hx− n2 −1 + hx+ n2
3. max. 256 operations for computing s
⇒ O(1)
I however: large constant factor
Non-Linear Filters

algorithm III: Perreault & Hébert, 2007


I effort per pixel (8-bit gray scale image):
1. 1 addition and 1 subtraction for hx+ n2
2. 256 addition and 256 subtraction for H = H − hx− n2 −1 + hx+ n2
3. max. 256 operations for computing s
⇒ O(1)
I however: large constant factor
I however: neat tricks keep effort low
I multilevel histograms
I addition / subtraction by means of bit shifting
Non-Linear Filters

algorithm III: Perreault & Hébert, 2007


I effort per pixel (8-bit gray scale image):
1. 1 addition and 1 subtraction for hx+ n2
2. 256 addition and 256 subtraction for H = H − hx− n2 −1 + hx+ n2
3. max. 256 operations for computing s
⇒ O(1)
I however: large constant factor
I however: neat tricks keep effort low
I multilevel histograms
I addition / subtraction by means of bit shifting
I implementation available within OpenCV
Non-Linear Filters

morphology (I)

given f [i, j] and ordered set Rxy = ri ∈ Nxy ri 6 ri+1

I
Non-Linear Filters

morphology (I)

given f [i, j] and ordered set Rxy = ri ∈ Nxy ri 6 ri+1

I

I the operation

g[x, y] ← r0

is called erosion
Non-Linear Filters

morphology (I)

given f [i, j] and ordered set Rxy = ri ∈ Nxy ri 6 ri+1

I

I the operation

g[x, y] ← r0

is called erosion

I the operation

g[x, y] ← rq−1

is called dilation
Non-Linear Filters

morphology (II)
I erosion and dilation are useful in binary image processing

I they shrink or expand shapes, for example

image f erosion e(f ) dilation d(f )


Non-Linear Filters

morphology (III)
I shape boundary extraction

shape f boundary f − e(f )


Non-Linear Filters

morphology (IV)
I the operation

d◦e

is called opening
Non-Linear Filters

morphology (IV)
I the operation

d◦e

is called opening

I the operation

e◦d

is called closing
Non-Linear Filters

morphology (V)
I they remove isolated pixels or close holes, for example

 
image f opening d e(f ) closing e d(f )
Non-Linear Filters

morphology (VI)
I morphological operations are of importance in industrial
computer vision (machine vision) and in medical image
processing
Non-Linear Filters

morphology (VI)
I morphological operations are of importance in industrial
computer vision (machine vision) and in medical image
processing

I they are treated in great detail in


I R. Gonzales and R.E. Woods, Digital Image Processing,
Prentice Hall, 3rd edition, 2007
Non-Linear Filters

bilateral filters (I)


I rather recent interesting idea

I for details, see, for instance


I C. Tomasi and R. Manduchi, Bilateral Filtering for Gray and
Color Images, Proc. ICCV, 1998

I S. Paris, P. Kornprobst, J. Tumblin, and F. Durand, Bilateral


Filtering: Theory and Applications, Computer Graphics and
Vision, 4(1), 2008
Non-Linear Filters

bilateral Filters (II)


I given image f , pixels p at p = (x, y) and q at q = (x 0 , y 0 ),
consider
1 X
Gρ |fp − fq | Gσ kp − qk fq
 
f̃p =
wp
q∈Np

where wp is a normalizing factor and Gρ and Gσ are


Gaussians with standard deviations ρ and σ
Non-Linear Filters

bilateral Filters (II)


I given image f , pixels p at p = (x, y) and q at q = (x 0 , y 0 ),
consider
1 X
Gρ |fp − fq | Gσ kp − qk fq
 
f̃p =
wp
q∈Np

where wp is a normalizing factor and Gρ and Gσ are


Gaussians with standard deviations ρ and σ
Non-Linear Filters

bilateral Filters (II)


I given image f , pixels p at p = (x, y) and q at q = (x 0 , y 0 ),
consider
1 X
Gρ |fp − fq | Gσ kp − qk fq
 
f̃p =
wp
q∈Np

where wp is a normalizing factor and Gρ and Gσ are


Gaussians with standard deviations ρ and σ
Non-Linear Filters

bilateral Filters (III)

ρ 0.05 0.2 0.8


σ

16
Gaussian Compositions

unsharp masking (I)


I given an image f (x, y), compute
Gaussian Compositions

unsharp masking (I)


I given an image f (x, y), compute

1. s(x, y) = Gσ ∗ f (x, y)
Gaussian Compositions

unsharp masking (I)


I given an image f (x, y), compute

1. s(x, y) = Gσ ∗ f (x, y)

2. r(x, y) = f (x, y) − s(x, y)


Gaussian Compositions

unsharp masking (I)


I given an image f (x, y), compute

1. s(x, y) = Gσ ∗ f (x, y)

2. r(x, y) = f (x, y) − s(x, y)

3. f̃ (x, y) = f (x, y) + αr(x, y)

I terminology:

α = 1 ⇔ unsharp masking
α > 1 ⇔ highboost filtering
Gaussian Compositions

unsharp masking (II)

f (x, y) s(x, y) r(x, y) f̃ (x, y)


Gaussian Compositions

difference of Gaussians (I)


I consider two Gaussians
2 2
1 − x2 1 − x2
G1 (x) = √ e 2σ1 and G2 (x) = √ e 2σ2
2πσ1 2πσ2
I their difference is 0.14
σ= 3
0.12 σ= 7
DoG

DoG(x) = G1 (x) − G2 (x) 0.1

0.08

0.06

0.04

0.02

-0.02

-0.04
-20 -10 0 10 20
Gaussian Compositions

difference of Gaussians (II)

original

σ1 = 4.5, σ2 = 9 σ1 = 9, σ2 = 18 σ1 = 18, σ2 = 36
Gaussian Compositions

Laplacians (I)
I for the discrete convolution (not correlation!!!)
of the signal · · · 0-110 · · · with the kernel [-11],
we have

· · · 000-11000 · · · ∗ [-11] = · · · 0001-21000 · · ·


Gaussian Compositions

Laplacians (I)
I for the discrete convolution (not correlation!!!)
of the signal · · · 0-110 · · · with the kernel [-11],
we have

· · · 000-11000 · · · ∗ [-11] = · · · 0001-21000 · · ·

I therefore, if we define
d !
f [x] = [-11] ∗ f [x]
dx
then
d2
f [x] = [-11] ∗ [-11] ∗ f [x] = [1-21] ∗ f [x]
dx2
Gaussian Compositions

Laplacians (II)
I given a continuous 2D function f (x, y), the function

∂2 ∂2
∆ f (x, y) = ∇2 f (x, y) = f (x, y) + f (x, y)
∂x2 ∂y2

is called the Laplacian of f (x, y)


Gaussian Compositions

Laplacians (III)
I for discrete 2D function f [x, y] with

∂2 f
= f [x − 1, y] − 2f [x, y] + f [x + 1, y]
∂x2
∂2 f
= f [x, y − 1] − 2f [x, y] + f [x, y + 1]
∂y2

we find

∇2 f [x, y] =f [x − 1, y] + f [x + 1, y]+
f [x, y − 1] + f [x, y + 1] − 4 f [x, y]
Gaussian Compositions

Laplacians (IV)
I written as a discrete 2D filter kernel, the Laplacian
amounts to
 
0 1 0
L[x, y] = 1 -4 1
0 1 0

and we have

∇2 f [x, y] = (L ∗ f )[x, y]
Gaussian Compositions

note:

I apparently, there are several possible definitions for


discrete gradient operators . . .

I some of the more common operators are called Sobel,


Canny, Preweitt, or Roberts gradient

I depending on the choice of gradient, the discrete


Laplacian may assume different forms
Gaussian Compositions

Laplacians (V)
I the Laplacian of an image reveals regions of rapidly
changing intensities and is therefore often used in
edge detection
Gaussian Compositions

Laplacians (V)
I the Laplacian of an image reveals regions of rapidly
changing intensities and is therefore often used in
edge detection

I yet, as a second derivative operator, it is sensitive to noise


Gaussian Compositions

Laplacians (V)
I the Laplacian of an image reveals regions of rapidly
changing intensities and is therefore often used in
edge detection

I yet, as a second derivative operator, it is sensitive to noise

I for increased robustness, one often performs Gaussian


smoothing prior to computing the Laplacian, i.e.

f̃ (x, y) = L ∗ G ∗ f (x, y)
Gaussian Compositions

Laplacians (VI)
I when computing L ∗ G ∗ f , it is beneficial to compute the
Laplacian of Gaussian

LoG(x, y) = L ∗ G (x, y)
x2 + y2 − x2 +y22
 
1
=− 4 1− e 2σ
πσ 2σ2

beforehand and then to compute



LoG ∗ f (x, y)
Gaussian Compositions

Laplacians (VII)
I finally, to further simplify computation, the Laplacian of
Gaussian LoG is commonly approximated by means
of a suitably chosen Difference of Gaussians DoG
Summary

we now know about


I efficient algorithms for median filtering

I morphological operations and possible applications

I bilateral filtering and its properties

I unsharp masking

I DoGs and LoGs

You might also like