Skeletonization
(part 1)
Jason Rupard
CAP6400
Skeletonization Topic
Introduction
Medial-Axis Transform (MAT)
Thinning
Other Concepts
Introduction
What is a skeleton?
Opinion
Do we know it?
Skeleton
Represents the shape of an object in a small
amount of pixels
Introduction
Can convey all information found in the
original object
Position
Size
Orientation
These all help to characterize the object
Introduction
Most techniques to extract a skeleton are
based on Thinning
Most of these only differ performance wise
Rarely do they differ on how the skeleton is
found or it quality
Medial-Axis Transform
One of the first definitions for the skeleton
BLUM 1967
Originally based on the concept of wave
fronts
Different ways to accomplish
BLUM MAT
Distance Maps
BLUM MAT
For any point P in the object
Locate the closest boundary point, if there is more then one at
this minimum distance Its a skeletal point
Distance Maps
Concept
Make an image in which its objects pixels are
colored based on their distance from the
objects boundary
Dark pixels are close to the objects boundary
Light pixels are further away from the
boundary
Distance Maps
3 ways to compute the
distance
Euclidean Distance
Coordinates
City Block Distance
Up Down : Left Right
D = ( x2 x1) ( y2 y1)
D = | x 2 x1 | + | y 2 y 1 |
Chessboard Distance
Any Direction (King
Move)
D = max(| x 2 x1 |, | y 2 y1 |)
Distance Maps
Another way to compute the distance is to
use morphology
Erosion
If foreground pixels match mask, origin stays
Else, origin is deleted
The distance map for that point gets the number of
erosions before it was deleted
Distance Maps
Once the map is obtained, we could apply
two methods of finding the skeleton from it
Apply Laplacian Operator
Threshold to extract max values
Distance Maps
Distance Maps
Final Output
Using Laplacian
Missing ONE pixel on its side
A perfect T output
Thinning
A form of morphology
Identifying those pixels belonging to a
object that are essential for representing
objects shape
Stripping away outer pixels
Thinning
Three things
Not all objects should be thinned
The same skeleton will not work for all
situations
It depends on what you need in further processing
Thinning is not defined by the algorithm used
It identifies the skeleton
Thinning: Iterative Morphological
Methods
Stentiford 1983
Use 3x3 templates
A match of the template means to delete the
origin pixel
Thinning: Iterative Morphological
Methods
1.
Find location (i,j) in image who matches template 1
2.
If origin is not a endpoint and connectivity = 1, mark for
delete
3.
Repeat 1 and 2 for all pixel locations matching
template 1
4.
Repeat 1-3 for templates 2, 3, and 4
5.
If any pixels marked for deletion, delete them
6.
If any pixels are deleted, repeat process from step 1,
otherwise stop
Thinning: Iterative Morphological
Methods
A pixel is an endpoint if it has only one
neighbor
Checking connectivity because we dont
want to split an object into two
Connectivity
Cn = Nk (Nk Nk+1 Nk+2 )
kS
S={1,3,5,7}
Origin = N0
Nk = 1, if pixel is background
Nk = 0, if pixel is part of object
N1 is to the right of the origin, ordered
counterclockwise
Part 2
More Connectivity
Stentiford: Minimize Artifacts
Zhang-Suen Thinning
Holt Thinning
Holt staircase removal
Connectivity
More Connectivity
Visit P2, P3, P4, , P8, P9, P2
Number of black-white(01) changes =
Connectivity
1 = object pixel, 0 = background
Artifacts
Necking
Intersection of two lines
Tailing
Lines meeting at an acute angle
Projections
Rough images
Stentiford: To Minimize Artifacts
A preprocess stage to minimize artifacts
Smoothing (projections)
Pass over all pixels
Delete current pixel if it has less than 3 object
neighbors and Connectivity < 2
Acute Angle Emphasis (necking)
Pixels near the joint between two lines are set
to the background if they plug up an acute
angle
Acute Angle Emphasis
Di
Ui
Run each mask through once
Delete all marked pixels
If any deleted
Run through again but with masks D(1,2,3) and U(1,2,3) only, mark matches
Else exit
Delete all marked pixels
If any deleted
Mark origin for delete if mask matches
Run Through again but with masks D1 and U1 only, mark matches
Else exit
Delete Marked and exit
Zhang-Suen Thinning Algorithm
Fast and Simple
Can be parallelized
2 subiterations
First subiteration: pixel I(i,j) is marked for
deletion if ALL of the following 4 conditions are
true
1.
2.
3.
4.
Its connectivity = 1
Has at least 2 object neighbors and not more than 6
At least one of P2, P4, P6 are background
At least one of P4, P6, P8 are background
Delete Marked
Zhang-Suen Thinning Algorithm
Second subiteration: same as first except
rules 3 and 4 are changed
3. At least one of P2, P4, P8 are background
4. At least one of P2, P6, P8 are background
Delete Marked
If at the end of any subiteration there are
no pixels to be deleted, the skeleton is
complete
Zhang-Suen Thinning Algorithm
First subiteration removes south or east
boundary pixels or north-west corner
pixels
Zhang-Suen Thinning Algorithm
Second subiteration removes north or
west boundary pixels or south-east corner
pixels
Holt Thinning
Pixel Survival: If condition true, pixel stays
First subiteration:
v(C ) (edge(C ) (v( E ) v( S ) (v( N ) v(W ))))
Second subiteration
v(C ) (edge(C ) (v(W ) v( N ) (v( S ) v( E ))))
Holt Thinning
Holt comes up with one subiteration if
edge information about neighbors is made
available
v(C ) (edge(C )
(edge( E ) v( N ) v( S ))
(edge( S ) v(W ) v( E ))
(edge( E ) edge( SE ) edge( S )))
Holt Thinning
North-West Bias
Pixel on west edge is kept if it is not on a corner and its
east neighbor is on a edge (vertical 2-stroke)
edge( E ) v( N ) v( S )
Pixel on north edge is kept if it is not on a corner and its
south neighbor is on a edge (horizontal 2-stroke)
edge( S ) v(W ) v( E )
Pixel is kept if it is part of a 2x2 square
edge( E ) edge( SE ) edge( S )
Holt Staircase Removal
To make sure a hole is not create
One of the unknown side neighbors must be 0
Side Neighbors: N, E, S, and W
Side Notes
Holt is faster then Zhang-Suen
Zhang-Suen gives a better skeleton
Parker:
Stentifords Preprocessing
Zhang-Suens Thinning Algorithm
Holts staircase removal Postprocessing
Reference
Algorithms for Image Processing and Computer Vision
J. R. Parker
Christopher M. Holt , Alan Stewart , Maurice Clint ,
Ronald H. Perrott, An improved parallel thinning
algorithm, Communications of the ACM, v.30 n.2, p.156160, Feb. 1987
T. Y. Zhang , C. Y. Suen, A fast parallel algorithm for
thinning digital patterns, Communications of the ACM,
v.27 n.3, p.236-239, March 1984
http://www.ee.ucl.ac.uk/~fstentif/Thinning.pdf