0% found this document useful (0 votes)
9 views

Lec21 EdgeDetection

The document discusses edge detection in digital images. It describes how edges are caused by discontinuities in surface normals, depth, color, or illumination. Common edge detection techniques include gradient and Laplacian operators, which use first and second derivatives to identify edges. The Sobel operator is presented as an approximation of the gradient that works on discrete images using convolution masks. Edge detection algorithms like Canny aim to detect true edges while suppressing noise through techniques like Gaussian smoothing and non-maximum suppression.

Uploaded by

Abburi Kumar
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)
9 views

Lec21 EdgeDetection

The document discusses edge detection in digital images. It describes how edges are caused by discontinuities in surface normals, depth, color, or illumination. Common edge detection techniques include gradient and Laplacian operators, which use first and second derivatives to identify edges. The Sobel operator is presented as an approximation of the gradient that works on discrete images using convolution masks. Edge detection algorithms like Canny aim to detect true edges while suppressing noise through techniques like Gaussian smoothing and non-maximum suppression.

Uploaded by

Abburi Kumar
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/ 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