Notes
Slide Show
Outline
1
Announcements
  • Mailing list:  csep576@cs.washington.edu
      • you should have received messages
  • Project 1 out today (due in two weeks)
  • Carpools
2
Edge Detection
  • Today’s reading
    • Forsyth, chapters 8, 15.1
3
Edge detection
  • Convert a 2D image into a set of curves
    • Extracts salient features of the scene
    • More compact than pixels
4
Origin of Edges
  • Edges are caused by a variety of factors
5
Edge detection
  • How can you tell that a pixel is on an edge?
6
Image gradient
  • The gradient of an image:



  • The gradient points in the direction of most rapid change in intensity
7
The discrete gradient
  • How can we differentiate a digital image F[x,y]?
8
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)
9
The Sobel operator
  • Better approximations of the derivatives exist
    • The Sobel operators below are very commonly used
10
Effects of noise
  • Consider a single row or column of the image
    • Plotting intensity as a function of position gives a signal
11
Solution:  smooth first
12
Derivative theorem of convolution
  • This saves us one operation:
13
Laplacian of Gaussian
  • Consider
14
2D edge detection filters
15
The Canny edge detector
  • original image (Lena)
16
The Canny edge detector
17
The Canny edge detector
18
Non-maximum suppression
  • Check if pixel is local maximum along gradient direction
    • requires checking interpolated pixels p and r
19
The Canny edge detector
20
Effect of s (Gaussian kernel spread/size)
21
Edge detection by subtraction
22
Edge detection by subtraction
23
Edge detection by subtraction
24
Gaussian - image filter
25
An edge is not a line...
26
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
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
28
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?
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?
30
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)?
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
32
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