You are on page 1of 45

CSD 357

Digital Image
Processing

Edge Detection
Edge Detection

• Convert a 2D image into a set of curves


– Extracts salient features of the scene
– More compact than pixels
Origin of Edges

surface normal discontinuity

depth discontinuity

surface color discontinuity

illumination discontinuity

• Edges are caused by a variety of factors


How can you tell that a pixel is on an edge?
Edge Types

Step Edges

Roof Edge Line Edges


Real Edges

Noisy and Discrete!

We want an Edge Operator that produces:

– Edge Magnitude
– Edge Orientation
– High Detection Rate and Good Localization
Gradient
• Gradient equation:

• Represents direction of most rapid change in intensity

• Gradient direction:

• The edge strength is given by the gradient magnitude


Theory of Edge Detection

Ideal edge
y
B1 Lx, y   x sin   y cos    0
B1 : Lx, y   0
B2 t B2 : Lx, 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

Image intensity (brightness):

I x, y   B1  B2  B1 u x sin   y cos   


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

• Squared gradient:
2
 I   I 
2

sx, y         B2  B1  x sin   y cos   


2

 x   y 
Edge Magnitude: sx, 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
• How can we differentiate a discrete image?

Finite difference approximations:

I

1
Ii1, j 1  I i, j 1   Ii1, j  I i, j  I i , j 1 I i 1, j 1
x 2 
I

1
I i1, j 1  I i1, 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
 2 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

• 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

– The Sobel operators below are commonly used

-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

Where is the edge??


Solution: Smooth First

Where is the edge? Look for peaks in


Derivative Theorem of Convolution
…saves us one operation.
Laplacian of Gaussian (LoG)
2  2 
h  f    2 h   f
x 2
 x  Laplacian of Gaussian

Laplacian of Gaussian operator

Where is the edge? Zero-crossings of bottom graph !


Marr-Hildreth Edge detector
2D Gaussian Edge Operators

Gaussian Derivative of Gaussian (DoG) Laplacian of Gaussian


Mexican Hat (Sombrero)

• is the Laplacian operator:


Laplacian of Gaussian or Maxican Hat
Laplacian of Gaussian or Maxican Hat
Laplacian of Gaussian or Maxican Hat
Laplacian of Gaussian or Maxican Hat
Difference of Gaussians (DoG)
• Laplacian of Gaussian can be approximated by the
difference between two different Gaussians
DoG Edge Detection

(a)  1 (b)  2 (b)-(a)


Gaussian – Image filter

Fourier Transform

Gaussian delta function


Unsharp Masking

100
200
300 – =
400
500

200 400 600 800

+a =
Finding Zero Crossing

In some cases, one looks not


only for zero crossing but for
minimum numerical difference
between intensity values of
opposing neighbors.
Edge Thresholding
• Standard Thresholding:

• Can only select “strong” edges.


• Does not guarantee “continuity”.

• Hysteresis based Thresholding (use two thresholds)

Example: For “maybe” edges, decide on the edge if neighboring pixel is a strong edge.
Convolution
with LoG
𝜎 = 4, 𝑛 = 25
Some properties of Marr-Hildreth Edge
Detector
Canny Edge Operator
Canny Edge Operator
Canny Edge Operator
Canny Edge Operator
Canny Edge Operator
Canny Edge Operator
Canny Edge Operator

• Note – If the edge threshold is too low, we


will keep several spurious edges.

• If the edge threshold is too high, we loose


a lot of good edges.

• The Hysteresis idea seeks best of both


worlds – we keep weaker edges that are
linked to some strong edge.
Canny Edge Operator – Summary

• Smooth image I with 2D Gaussian:


GI
• Find local edge normal directions for each pixel
G  I 
n
G  I 
• Compute edge magnitudes
G  I 
• Locate edges by finding zero-crossings along the edge
normal directions (non-maximum suppression)
Non-maximum Suppression

• Check if pixel is local maximum along gradient direction


– requires checking interpolated pixels p and r
The Canny Edge Detector

original image (Lena)


The Canny Edge Detector

magnitude of the gradient


The Canny Edge Detector

After non-maximum suppression


Canny Edge Operator

original Canny with Canny with

• The choice of depends on desired behavior


– large detects large scale edges
– small detects fine features

You might also like