Announcements
Reader is in the BOOK STORE (not Comm Bldg.)
Mailing list:  cse455@cs.washington.edu
you should have received messages
Office hours online
start next week
this week:  by appt. only
Project 1 out today (due in two weeks)
posted on course web page
help session today
Your ID card should open Sieg 327
check to make sure ASAP

Image Scissors
Today’s Readings
Intelligent Scissors, Mortensen et. al, SIGGRAPH 1995

Extracting objects
How could this be done?
hard to do manually
hard to do automatically (“image segmentation”)
easy to do semi-automatically

Intelligent Scissors (demo)

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

Intelligent Scissors
Basic Idea
Define edge score for each pixel
edge pixels have low cost
Find lowest cost path from seed to mouse

Intelligent Scissors
Basic Idea
Define edge score for each pixel
edge pixels have low cost
Find lowest cost path from seed to mouse

Path Search (basic idea)
Graph Search Algorithm
Computes minimum cost path from seed to all other pixels

Path Search (basic idea)
Graph Search Algorithm
Computes minimum cost path from seed to all other pixels

Path Search (basic idea)

Let’s look at this more closely
Treat the image as a graph

Defining the costs

Defining the costs

Defining the costs
c can be computed using a cross-correlation filter
assume it is centered at p
A couple more modifications
Scale the filter response by length of link c.  Why?
Make c positive
Set c = (max-|filter response|*length)
where max = maximum |filter response|*length over all pixels in the image

Defining the costs

Dijkstra’s shortest path algorithm

Dijkstra’s shortest path algorithm

Dijkstra’s shortest path algorithm

Dijkstra’s shortest path algorithm

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 fraction of a 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) time.
it runs in real time as the mouse moves
What happens when the user specifies a new seed?

Results

Help session—Ryan