Notes
Slide Show
Outline
1
Edge Detection
  • Today’s reading
    • Forsyth, chapters 8, 15.1
2
Edge detection
  • Convert a 2D image into a set of curves
    • Extracts salient features of the scene
    • More compact than pixels
3
Origin of Edges
  • Edges are caused by a variety of factors
4
Edge detection
  • How can you tell that a pixel is on an edge?
5
Image gradient
  • The gradient of an image:



  • The gradient points in the direction of most rapid change in intensity
6
The discrete gradient
  • How can we differentiate a digital image f[x,y]?
    • Option 1:  reconstruct a continuous image, then take gradient
    • Option 2:  take discrete derivative (finite difference)
7
The Sobel operator
  • Better approximations of the derivatives exist
    • The Sobel operators below are very commonly used
8
Effects of noise
  • Consider a single row or column of the image
    • Plotting intensity as a function of position gives a signal
9
Solution:  smooth first
10
Derivative theorem of convolution
  • This saves us one operation:
11
Laplacian of Gaussian
  • Consider
12
2D edge detection filters
  •       is the Laplacian operator:
13
The Canny edge detector
  • original image (Lena)
14
The Canny edge detector
15
The Canny edge detector
16
Non-maximum suppression
  • Check if pixel is local maximum along gradient direction
    • requires checking interpolated pixels p and r
17
The Canny edge detector
18
Effect of s (Gaussian kernel size)
19
Scale space (Witkin 83)
  • Properties of scale space (w/ Gaussian smoothing)
    • edge position may shift with increasing scale (s)
    • two edges may merge with increasing scale
    • an edge may not split into two with increasing scale
20
Edge detection by subtraction
21
Edge detection by subtraction
22
Edge detection by subtraction
23
Gaussian - image filter
24
An edge is not a line...
25
Finding lines in an image
  • Option 1:
    • Search for the line at every possible position/orientation
    • What is the cost of this operation?


  • Option 2:
    • Use a voting scheme:  Hough transform
26
Finding lines in an image
  • Connection between image (x,y) and Hough (m,b) spaces
    • A line in the image corresponds to a point in Hough space
    • To go from image space to Hough space:
      • given a set of points (x,y), find all (m,b) such that y = mx + b
27
Finding lines in an image
  • Connection between image (x,y) and Hough (m,b) spaces
    • A line in the image corresponds to a point in Hough space
    • To go from image space to Hough space:
      • given a set of points (x,y), find all (m,b) such that y = mx + b
    • What does a point (x0, y0) in the image space map to?
28
Hough transform algorithm
  • Typically use a different parameterization


    • d is the perpendicular distance from the line to the origin
    • q is the angle this perpendicular makes with the x axis
    • Why?
29
Hough transform algorithm
  • Typically use a different parameterization


    • d is the perpendicular distance from the line to the origin
    • q is the angle this perpendicular makes with the x axis
    • Why?
  • Basic Hough transform algorithm
    • Initialize H[d, q]=0
    • for each edge point I[x,y] in the image
      •     for q = 0 to 180


        •     H[d, q] += 1
    • Find the value(s) of (d, q) where H[d, q] is maximum
    • The detected line in the image is given by
  • What’s the running time (measured in # votes)?
30
Extensions
  • Extension 1:  Use the image gradient
    • same
    • for each edge point I[x,y] in the image
      •     compute unique (d, q) based on image gradient at (x,y)
        •     H[d, q] += 1
    • same
    • same
  • What’s the running time measured in votes?


  • Extension 2
    • give more votes for stronger edges
  • Extension 3
    • change the sampling of (d, q) to give more/less resolution
  • Extension 4
    • The same procedure can be used with circles, squares, or any other shape
31
Extensions
  • Extension 1:  Use the image gradient
    • same
    • for each edge point I[x,y] in the image
      •     compute unique (d, q) based on image gradient at (x,y)
        •     H[d, q] += 1
    • same
    • same
  • What’s the running time measured in votes?


  • Extension 2
    • give more votes for stronger edges
  • Extension 3
    • change the sampling of (d, q) to give more/less resolution
  • Extension 4
    • The same procedure can be used with circles, squares, or any other shape