|
|
|
|
Add through registration system |
|
Project 1 is out today |
|
help session at the end of class |
|
|
|
|
|
Today’s Readings |
|
Intelligent Scissors |
|
|
|
|
|
|
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 |
|
|
|
|
|
|
|
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 |
|
|
|
|
|
|
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 |
|
|
|
|
|
|
|
|
Basic Idea |
|
Define edge score for each pixel |
|
edge pixels have low cost |
|
Find lowest cost path from seed to mouse |
|
|
|
|
|
Graph Search Algorithm |
|
Computes minimum cost path from seed to all other
pixels |
|
|
|
|
Treat the image as a graph |
|
|
|
|
Treat the image as a graph |
|
|
|
|
|
|
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 |
|
|
|
|
|
|
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 |
|
|
|
|
|
|
|
|
|
|
|
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? |
|
|