Announcements
|
|
|
|
Add through registration system |
|
Project 1 is out today |
|
help session at the end of class |
Image Segmentation
|
|
|
|
Today’s Readings |
|
Intelligent Scissors |
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 |
Extracting objects
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 |
Intelligent Scissors
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 |
Path Search (basic idea)
|
|
|
|
Graph Search Algorithm |
|
Computes minimum cost path from seed to
all other pixels |
How does this really
work?
|
|
|
Treat the image as a graph |
Defining the costs
|
|
|
Treat the image as a graph |
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 |
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 |
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
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? |
Results