Professional Documents
Culture Documents
Edge Detection
Edge Detection
Edge Detection
depth discontinuity
illumination discontinuity
Step Edges
– Edge Magnitude
– Edge Orientation
– High Detection Rate and Good Localization
Gradient
• Gradient equation:
• Gradient direction:
Ideal edge
y
B1 Lx, y x sin y cos 0
B1 : Lx, y 0
B2 t B2 : Lx, y 0
x
Unit step function:
1 for t 0
u t 1 u t s ds
t
for t 0
2
0 for t 0
• Squared gradient:
2
I I
2
x y
Edge Magnitude: sx, y
I I
Edge Orientation: arctan / (normal of the edge)
y x
Rotationally symmetric, non-linear operator
Theory of Edge Detection
• Image intensity (brightness):
I x, y B1 B2 B1 u x sin y cos
• Partial derivatives (gradients):
I
sin B2 B1 x sin y cos
x
I
cos B2 B1 x sin y cos
y
• Laplacian:
2I 2I
I 2 2 B2 B1 ' x sin y cos
2
x y
Rotationally symmetric, linear operator
I 2I
I
x x 2 zero-crossing
x
x x
Discrete Edge Operators
I
1
I i 1, j 1 I i, j 1 I i 1, j I i, j I i , j 1 I i 1, j 1
x 2
I
1
I i1, j 1 I i1, j I i, j 1 I i, j I i, j I i 1, j
y 2
Convolution masks :
I 1 1 1 I 1 1 1
x 2 y 2
1 1 1 1
Discrete Edge Operators
• Second order partial derivatives:
I i 1, j 1 I i , j 1 I i 1, j 1
I 1
2 I i 1, j 2 I i , j I i 1, j
2
x 2
I i 1, j I i , j I i 1, j
2I
1
I i, j 1 2 I i, j I i, j 1 I i 1, j 1 I i , j 1 I i 1, j 1
y 2
2
• Laplacian :
2I 2I
I 2 2
2
x y
Convolution masks :
0 1 0 1 4 1
1 1
2I 1 4 1 or 20 4
2 6 2
4 (more accurate)
0 1 0 1 4 1
The Sobel Operators
• Better approximations of the gradients exist
-1 0 1 1 2 1
-2 0 2 0 0 0
-1 0 1 -1 -2 -1
Comparing Edge Operators
Good Localization
Gradient: Noise Sensitive
Poor Detection
Roberts (2 x 2): 0 1 1 0
-1 0 0 -1
Sobel (3 x 3):
-1 0 1 1 1 1
-1 0 1 0 0 0
-1 0 1 -1 -1 1
Sobel (5 x 5):
-1 -2 0 2 1 1 2 3 2 1
-2 -3 0 3 2 2 3 5 3 2
Poor Localization
-3 -5 0 5 3 0 0 0 0 0
Less Noise Sensitive
-2 -3 0 3 2 -2 -3 -5 -3 -2 Good Detection
-1 -2 0 2 1 -1 -2 -3 -2 -1
Effects of Noise
• Consider a single row or column of the image
– Plotting intensity as a function of position gives a signal
G I
n
G I
2 G I
0
n 2
Non-maximum Suppression
Fourier Transform
100
200
300 – =
400
500
+a =
MATLAB demo
g = fspecial('gaussian',15,2);
imagesc(g)
surfl(g)
gclown = conv2(clown,g,'same');
imagesc(conv2(clown,[-1 1],'same'));
imagesc(conv2(gclown,[-1 1],'same'));
dx = conv2(g,[-1 1],'same');
imagesc(conv2(clown,dx,'same');
lg = fspecial('log',15,2);
lclown = conv2(clown,lg,'same');
imagesc(lclown)
imagesc(clown + .2*lclown)
Edge Thresholding
• Standard Thresholding:
Example: For “maybe” edges, decide on the edge if neighboring pixel is a strong edge.
Edge Relaxation
• Parallel – Iterative method to adjust edge
values on the basis of neighboring edges.
a f
No Edge
e
b g Edge to be updated
Edge
c h
(1)
• Vertex Types:
(0)
Edge Relaxation
• Vertex Types (continued):
(2)
(3)
Edge Relaxation Algorithm
• Action Table: Decrement Increment Leave as is
0-1
Edge Type
0-0 1-1
2-2
0-2 1-2
2-3
0-3 1-3 3-3
• Algorithm:
Magnitude of e
C 0 (e)
Maximum Gradient in image
Step 1: Initialize k 1
Step 2: Compute Edge Type of each edge e