Image Segmentation
|
|
|
|
Today’s Readings |
|
Intelligent Scissors, Mortensen
et. al, SIGGRAPH 1995 |
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
(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 |
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 its
length |
|
set c = (max-|filter response|) |
|
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 its
length |
|
set c = (max-|filter response|) |
|
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 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—Jiun Hung