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