Topological skeleton
In shape analysis, skeleton (or topological skeleton) of a shape is a thin version of that shape that is equidistant to its boundaries. The skeleton usually emphasizes geometrical and topological properties of the shape, such as its connectivity, topology, length, direction, and width. Together with the distance of its points to the shape boundary, the skeleton can also serve as a representation of the shape (they contain all the information necessary to reconstruct the shape).
Skeletons have several different mathematical definitions in the technical literature, and there are many different algorithms for computing them. Various different variants of skeleton can also be found, including straight skeletons, morphological skeletons, and skeletons by influence zones (SKIZ) (also known as Voronoi diagram).
In the technical literature, the concepts of skeleton and medial axis are used interchangeably by some authors,[1][2][3][4][5] while some other authors[6][7][8] regard them as related, but not the same. Similarly, the concepts of skeletonization and thinning are also regarded as identical by some,[2] and not by others.[6]
Skeletons have been used in several applications in computer vision, image analysis, and digital image processing, including optical character recognition, fingerprint recognition, visual inspection, pattern recognition, binary image compression, and protein folding.[9]
Contents
Mathematical definitions
Skeletons have several different mathematical definitions in the technical literature; most of them lead to similar results in continuous spaces, but usually yield different results in discrete spaces.
Quench points of the fire propagation model
<templatestyles src="Module:Hatnote/styles.css"></templatestyles>
In his seminal paper, Harry Blum[10] of the Air Force Cambridge Research Laboratories in Cambridge, Massachusetts, defined a medial axis for computing a skeleton of a shape, using an intuitive model of fire propagation on a grass field, where the field has the form of the given shape. If one "sets fire" at all points on the boundary of that grass field simultaneously, then the skeleton is the set of quench points, i.e., those points where two or more wavefronts meet. This intuitive description is the starting point for a number of more precise definitions.
Centers of maximal disks (or balls)
A disk (or ball) B is said to maximal in a set A if
, and
- If another disc D contains B, then
.
One way of defining the skeleton of a shape A is as the set of centers of all maximal disks in A.[11]
Centers of bi-tangent circles
The skeleton of a shape A can also be defined as the set of centers of the discs that touch the boundary of A in two or more locations.[12] This definition assures that the skeleton points are equidistant from the shape boundary and is mathematically equivalent to Blum's medial axis transform.
Ridges of the distance function
Many definitions of skeleton make use of the concept of distance function, which is a function that returns for each point x inside a shape A its distance to the closest point on the boundary of A. Using the distance function is very attractive because its computation is relatively fast.
One of the definitions of skeleton using the distance function is as the ridges of the distance function.[6] There is a common mis-statement in the literature that the skeleton consists of points which are "locally maximum" in the distance transform. This is simply not the case, as even cursory comparison of a distance transform and the resulting skeleton will show.
Other definitions
- Points with no upstream segments in the distance function. The upstream of a point x is the segment starting at x which follows the maximal gradient path.
- Points where the gradient of the distance function are different from 1 (or, equivalently, not well defined)
- Smallest possible set of lines that preserve the topology and are equidistant to the borders
Skeletonization algorithms
There are many different algorithms for computing skeletons for shapes in digital images, as well as continuous sets.
- Using morphological operators (See Morphological skeleton[12])
- Supplementing morphological operators with shape based pruning [13]
- Using intersections of distances from boundary sections [14]
- Using curve evolution [15][16]
- Using level sets[8]
- Finding ridge points on the distance function[6]
- "Peeling" the shape, without changing the topology, until convergence[17]
Skeletonization algorithms can sometimes create unwanted branches on the output skeletons. Pruning algorithms are often used to remove these branches.
See also
Notes
<templatestyles src="Reflist/styles.css" />
Cite error: Invalid <references>
tag; parameter "group" is allowed only.
<references />
, or <references group="..." />
References
- Lua error in package.lua at line 80: module 'strict' not found..
- Lua error in package.lua at line 80: module 'strict' not found.
- Lua error in package.lua at line 80: module 'strict' not found..
- Lua error in package.lua at line 80: module 'strict' not found..
- Lua error in package.lua at line 80: module 'strict' not found..
- Lua error in package.lua at line 80: module 'strict' not found..
- Lua error in package.lua at line 80: module 'strict' not found..
- Lua error in package.lua at line 80: module 'strict' not found..
- Lua error in package.lua at line 80: module 'strict' not found..
- Lua error in package.lua at line 80: module 'strict' not found..
- Lua error in package.lua at line 80: module 'strict' not found..
- Lua error in package.lua at line 80: module 'strict' not found..
- Lua error in package.lua at line 80: module 'strict' not found..
- Lua error in package.lua at line 80: module 'strict' not found..
Open source software
- ITK (C++)
- Skeletonize3D (Java)
- Graphics gems IV (C)
- EVG-Thin (C++)
External links
- Skeletonization/Medial Axis Transform
- Skeletons of a region
- Skeletons in Digital image processing (pdf)
- Comparison of 15 line thinning algorithms
- Skeletonization using Level Set Methods
- Curve Skeletons
- Skeletons from laser scanned point clouds (Homepage)
- ↑ Jain, Kasturi & Schunck (1995), Section 2.5.10, p. 55.
- ↑ 2.0 2.1 Gonzales & Woods (2001), Section 11.1.5, p. 650
- ↑ http://people.csail.mit.edu/polina/papers/skeletons_cvpr00.pdf
- ↑ Dougherty (1992).
- ↑ Ogniewicz (1995).
- ↑ 6.0 6.1 6.2 6.3 A. K. Jain (1989), Section 9.9, p. 382.
- ↑ Serra (1982).
- ↑ 8.0 8.1 Sethian (1999), Section 17.5.2, p. 234.
- ↑ Abeysinghe et al. (2008).
- ↑ Harry Blum (1967)
- ↑ A. K. Jain (1989), Section 9.9, p. 387.
- ↑ 12.0 12.1 Gonzales & Woods (2001), Section 9.5.7, p. 543.
- ↑ Abeysinghe et al. (2008).
- ↑ R. Kimmel, D. Shaked, N. Kiryati, and A. M. Bruckstein. http://www.cs.technion.ac.il/~ron/PAPERS/skeletonization_CVIU_1995.pdf Comp. Vision and Image Understanding, 62(3):382-391, 1995.
- ↑ Tannenbaum (1996)
- ↑ Bai, Longin & Wenyu (2007).
- ↑ A. K. Jain (1989), Section 9.9, p. 389.