Notes
Slide Show
Outline
1
Announcements
  • CS accounts
  • Project 1 is out today
    • help session at the end of class
2
Image Segmentation
  • Today’s Readings
    • Intelligent Scissors
      • http://www.cs.washington.edu/education/courses/576/03sp/readings/mort-sigg95.pdf
3
From images to objects
  • What Defines an Object?
    • Subjective problem, but has been well-studied
    • Gestalt Laws seek to formalize this
      • proximity, similarity, continuation, closure, common fate
      • see notes by Steve Joordens, U. Toronto
4
Extracting objects
  • How could this be done?
5
Image Segmentation
  • Many approaches proposed
    • color cues
    • region cues
    • contour cues
  • We will consider a few of these
  • Today:
    • Intelligent Scissors (contour-based)
      • E. N. Mortensen and W. A. Barrett, Intelligent Scissors for Image Composition, in ACM Computer Graphics (SIGGRAPH `95), pp. 191-198, 1995
6
Intelligent Scissors
7
Intelligent Scissors
  • Approach answers a basic question
    • Q:  how to find a path from seed to mouse that follows object boundary as closely as possible?
    • A:  define a path that stays as close as possible to edges


8
Intelligent Scissors
  • Basic Idea
    • Define edge score for each pixel
      • edge pixels have low cost
    • Find lowest cost path from seed to mouse
9
Path Search (basic idea)
  • Graph Search Algorithm
    • Computes minimum cost path from seed to all other pixels
10
How does this really work?
  • Treat the image as a graph
11
Defining the costs
  • Treat the image as a graph
12
Defining the costs
  • c can be computed using a cross-correlation filter
    • assume it is centered at p

  • Also typically scale c by it’s length
    • set c = (max-|filter response|) * length(c)
      • where max = maximum |filter response| over all pixels in the image
13
Defining the costs
  • c can be computed using a cross-correlation filter
    • assume it is centered at p

  • Also typically scale c by it’s length
    • set c = (max-|filter response|) * length(c)
      • where max = maximum |filter response| over all pixels in the image
14
Dijkstra’s shortest path algorithm
15
Dijkstra’s shortest path algorithm
16
Dijkstra’s shortest path algorithm
17
Dijkstra’s shortest path algorithm
18
Dijkstra’s shortest path algorithm
19
Dijkstra’s shortest path algorithm
  • Properties
    • It computes the minimum cost path from the seed to every node in the graph.  This set of minimum paths is represented as a tree
    • Running time, with N pixels:
      • O(N2) time if you use an active list
      • O(N log N) if you use an active priority queue (heap)
      • takes < second for a typical (640x480) image
    • Once this tree is computed once, we can extract the optimal path from any point to the seed in O(N/2) time.
      • it runs in real time as the mouse moves
    • What happens when the user specifies a new seed?
20
Results