Jump to content

Topological skeleton: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Citation bot (talk | contribs)
Add: publisher, isbn, volume. | Use this bot. Report bugs. | Suggested by Abductive | Category:Image processing | #UCB_Category 95/260
 
(127 intermediate revisions by 69 users not shown)
Line 1: Line 1:
{{Short description|One-dimensional approximation to a shape}}
In [[digital image processing]], '''Skeletonizing''' (or '''Topological skeletons''' or '''Medial Axis Transform''') is a method to detect regions and objects in digital images.
[[File:Skel.png|thumb|right|A shape and its skeleton, computed with a topology-preserving thinning algorithm.]]
In [[shape analysis (digital geometry)|shape analysis]], '''skeleton''' (or '''topological skeleton''') of a [[shape]] is a thin version of that shape that is [[equidistant]] to its [[boundary (topology)|boundaries]]. The skeleton usually emphasizes geometrical and topological properties of the shape, such as its [[Connectedness|connectivity]], [[topology]], [[length]], [[Direction (geometry)|direction]], and [[width]]. Together with the distance of its points to the shape boundary, the skeleton can also serve as a [[image representation|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 skeleton]]s, [[morphological skeleton]]s, etc.
It often uses [[distance transform]]s to detect the skeletons of images.


In the technical literature, the concepts of skeleton and [[medial axis]] are used interchangeably by some authors,<ref>{{harvtxt|Jain|Kasturi|Schunck|1995}}, Section 2.5.10, p.&nbsp;55; {{harvtxt|Golland|Grimson|2000}}; {{harvtxt|Dougherty|1992}}; {{harvtxt|Ogniewicz|1995}}.</ref><ref name="gonzales">{{harvtxt|Gonzales|Woods|2001}}, Section 11.1.5, p.&nbsp;650</ref> while some other authors<ref name="jain">{{harvs|first=A. K.|last=Jain|year=1989|txt}}, Section 9.9, p.&nbsp;382.</ref><ref>{{harvtxt|Serra|1982}}.</ref><ref name="sethian">{{harvtxt|Sethian|1999}}, Section 17.5.2, p.&nbsp;234.</ref> regard them as related, but not the same. Similarly, the concepts of ''skeletonization'' and [[Thinning (morphology)|thinning]] are also regarded as identical by some,<ref name="gonzales"/> and not by others.<ref name="jain"/>
==See also==


Skeletons are widely used in [[computer vision]], [[image analysis]], [[pattern recognition]] and [[digital image processing]] for purposes such as [[optical character recognition]], [[fingerprint recognition]], [[visual inspection]] or [[image compression|compression]]. Within the life sciences skeletons found extensive use to characterize [[protein folding]]<ref>{{harvtxt|Abeysinghe|Ju|Baker|Chiu|2008}}</ref> and [[plant morphology]] on various biological scales.<ref>{{harvtxt|Bucksch|2014}}</ref>
*[[Medial axis]]
*[[Straight skeleton]]


==Mathematical definitions==
==External links ==
*[http://www.cee.hw.ac.uk/hipr/html/skeleton.html Skeletonization/Medial Axis Transform]
*[http://www.cs.bris.ac.uk/home/tr1690/documentation/fuzzy_clustering_initial_report/node9.html#SECTION00314000000000000000 Topological Skeletons]
*[http://www.cs.ru.nl/~ths/rt2/col/h9/9gebiedENG.html#9.2.4 Skeletons of a region]
*[http://www.citr.auckland.ac.nz/techreports/2002/CITR-TR-112.pdf Skeletons in Digital image processing (pdf)]
*[http://www-igm.univ-mlv.fr/LabInfo/rapportsInternes/2006/01.pdf Comparision of 15 line thinning algorithms]


Skeletons have several different mathematical definitions in the technical literature; most of them lead to similar results in [[Continuum (topology)|continuous spaces]], but usually yield different results in [[discrete space]]s.
[[Category:Image processing]]
[[Category:Digital geometry]]


===Quench points of the fire propagation model===
[[fr:Squelettisation]]
{{Main|Grassfire transform}}
In his seminal paper, [[Harry Blum (scientist)|Harry Blum]]<ref>{{harvs|first=Harry|last=Blum|author-link=Harry Blum (scientist)|year=1967|txt}}</ref> of the Air Force Cambridge Research Laboratories at [[Hanscom Air Force Base]], in [[Bedford, 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 [[wikt:quench|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 (mathematics)|disk]] (or [[ball (mathematics)|ball]]) ''B'' is said to be ''maximal'' in a set ''A'' if
{{compu-stub}}

* <math>B\subseteq A</math>, and
* If another disc ''D'' contains ''B'', then <math>D\not\subseteq A</math>.

One way of defining the skeleton of a shape ''A'' is as the set of centers of all maximal disks in ''A''.<ref>{{harvs|first=A. K.|last=Jain|year=1989|txt}}, Section 9.9, p.&nbsp;387.</ref>

===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.<ref name="gonzales543"/> 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 [[ridge]]s of the distance function.<ref name="jain"/> 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. Ridges may have varying height, so a point on the ridge may be lower than its immediate neighbor on the ridge. It is thus not a local maximum, even though it belongs to the ridge. It is, however, less far away vertically than its ground distance would warrant. Otherwise it would be part of the slope.

===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 function (set theory)|continuous sets]].

* Using [[Mathematical morphology#Basic operators|morphological operators]] (See [[Morphological skeleton]]<ref name="gonzales543">{{harvtxt|Gonzales|Woods|2001}}, Section 9.5.7, p.&nbsp;543.</ref>)
* Supplementing morphological operators with shape based [[Pruning (morphology)|pruning]]<ref>{{harvtxt|Abeysinghe|Baker|Chiu|Ju|2008}}.</ref>
*Using intersections of distances from boundary sections{{sfnp|Kimmel|Shaked|Kiryati|Bruckstein|1995}}
* Using curve evolution <ref>{{harvtxt|Tannenbaum|1996}}</ref><ref>{{harvtxt|Bai|Longin|Wenyu|2007}}.</ref>
* Using level sets<ref name="sethian"/>
* Finding ridge points on the distance function<ref name="jain"/>
* "Peeling" the shape, without changing the topology, until convergence<ref>{{harvs|first=A. K.|last=Jain|year=1989|txt}}, Section 9.9, p.&nbsp;389.</ref>
* Zhang-Suen Thinning Algorithm<ref>{{Cite journal |last1=Zhang |first1=T. Y. |last2=Suen |first2=C. Y. |date=1984-03-01 |title=A fast parallel algorithm for thinning digital patterns |url=https://doi.org/10.1145/357994.358023 |journal=Communications of the ACM |volume=27 |issue=3 |pages=236–239 |doi=10.1145/357994.358023 |s2cid=39713481 |issn=0001-0782}}</ref>

Skeletonization algorithms can sometimes create unwanted branches on the output skeletons. [[Pruning (morphology)|Pruning algorithms]] are often used to remove these branches.

== See also ==

* [[Medial axis]]
* [[Straight skeleton]]
* [[Beta skeleton|β-skeleton]]
* [[Grassfire Transform]]
* [[Computer font#Stroke-based fonts|Stroke-based fonts]]

==Notes==
{{reflist|2}}

==References==
*{{citation|last1=Abeysinghe|first1=Sasakthi|last2=Baker|first2=Matthew|last3=Chiu|first3=Wah|last4=Ju|first4=Tao |contribution = Segmentation-free skeletonization of grayscale volumes for shape understanding | title = IEEE Int. Conf. Shape Modeling and Applications (SMI 2008) | pages = 63–71 | year = 2008 | url = http://www.cs.wustl.edu/~ssa1/resources/grayskeleton_smi2008_paper.pdf | doi = 10.1109/SMI.2008.4547951 | isbn = 978-1-4244-2260-9 |s2cid=15148296}}.
*{{citation|last1=Abeysinghe|first1=Sasakthi|last2=Ju|first2=Tao|last3=Baker|first3=Matthew|last4=Chiu|first4=Wah | title = Shape modeling and matching in identifying 3D protein structures | journal = Computer-Aided Design | volume = 40 | issue = 6 | pages = 708–720 | publisher = Elsevier | year = 2008 | url = http://www.cs.wustl.edu/~ssa1/resources/graphmatch_cad2008_journal.pdf | doi = 10.1016/j.cad.2008.01.013}}
*{{citation|last1=Bai|first1 = Xiang | last2=Longin|first2= Latecki|last3= Wenyu|first3= Liu | title = Skeleton pruning by contour partitioning with discrete curve evolution | journal = IEEE Transactions on Pattern Analysis and Machine Intelligence | volume = 29 | issue = 3 | pages = 449–462 | year = 2007 | url = http://xiang.bai.googlepages.com/TPAMI-0573-1005-2.pdf | doi = 10.1109/TPAMI.2007.59|pmid=17224615 |s2cid = 14965041 }}.
*{{citation|last=Blum|first=Harry |contribution=A Transformation for Extracting New Descriptors of Shape|title=Models for the Perception of Speech and Visual Form|editor-first=W.|editor-last=Wathen-Dunn|publisher=MIT Press|location=Cambridge, Massachusetts|pages=362–380|year=1967|url = http://pageperso.lif.univ-mrs.fr/~edouard.thiel/rech/1967-blum.pdf}}.
*{{citation|last1=Bucksch|first1 = Alexander | title = A practical introduction to skeletons for the plant sciences | journal = Applications in Plant Sciences | volume = 2 | issue = 8 | year = 2014 | doi = 10.3732/apps.1400005 | pmc = 4141713 | pmid=25202647 | page=1400005}}.
*{{citation | last = Cychosz | first = Joseph | title = Graphics gems IV | publisher = Academic Press Professional, Inc. | location = San Diego, CA, USA | year = 1994 | pages = [https://archive.org/details/isbn_9780123361554/page/465 465–473] | isbn = 0-12-336155-9 | url = https://archive.org/details/isbn_9780123361554/page/465 }}.
*{{citation|last=Dougherty|first=Edward R.|title=An Introduction to Morphological Image Processing|isbn=0-8194-0845-X|year=1992}}.
*{{citation
| last1 = Golland | first1 = Polina | author1-link = Polina Golland
| last2 = Grimson | first2 = W. Eric L. | author2-link = Eric Grimson
| contribution = Fixed topology skeletons
| contribution-url = https://people.csail.mit.edu/polina/papers/skeletons_cvpr00.pdf
| doi = 10.1109/CVPR.2000.855792
| pages = 1010–1017
| publisher = IEEE Computer Society
| title = 2000 Conference on Computer Vision and Pattern Recognition (CVPR 2000), 13-15 June 2000, Hilton Head, SC, USA
| year = 2000| volume = 1 | isbn = 0-7695-0662-3 | s2cid = 9916140 }}
*{{citation|last1=Gonzales|first1=Rafael C.|last2=Woods|first2=Richard E.|title=Digital Image Processing|isbn=0-201-18075-8|year=2001|publisher=Prentice Hall }}.
*{{citation|last=Jain|first=Anil K.|title=Fundamentals of Digital Image Processing|isbn=0-13-336165-9|year=1989|bibcode=1989fdip.book.....J|url-access=registration|url=https://archive.org/details/fundamentalsofdi0000jain}}.
*{{citation|last1=Jain|first1=Ramesh|last2=Kasturi|first2=Rangachar|last3=Schunck|first3=Brian G.|title=Machine Vision|isbn=0-07-032018-7|year=1995|url-access=registration|url=https://archive.org/details/machinevision0000jain}}.
*{{citation
| last1 = Kimmel | first1 = Ron
| last2 = Shaked | first2 = Doron
| last3 = Kiryati | first3 = Nahum
| last4 = Bruckstein | first4 = Alfred M.
| doi = 10.1006/cviu.1995.1062
| issue = 3
| journal = Computer Vision and Image Understanding
| pages = 382–391
| title = Skeletonization via distance maps and level sets
| url = https://www.cs.technion.ac.il/~ron/PAPERS/skeletonization_CVIU_1995.pdf
| volume = 62
| year = 1995}}
*{{citation|last=Ogniewicz|first=R. L.|contribution=Automatic Medial Axis Pruning Based on Characteristics of the Skeleton-Space|title=Shape, Structure and Pattern Recognition|editor1-first=D.|editor1-last=Dori|editor2-first=A.|editor2-last=Bruckstein|isbn=981-02-2239-4|year=1995|publisher=World Scientific }}.
*{{citation|last1=Petrou|first1=Maria|last2=García Sevilla|first2=Pedro|title=Image Processing Dealing with Texture|isbn=978-0-470-02628-1|year=2006|publisher=Wiley }}.
*{{citation|last=Serra|first=Jean|title=Image Analysis and Mathematical Morphology|isbn=0-12-637240-3|year=1982|publisher=Academic Press }}.
*{{citation|last=Sethian|first=J. A.|title=Level Set Methods and Fast Marching Methods|isbn=0-521-64557-3|year=1999|publisher=Cambridge University Press }}.
*{{citation|last=Tannenbaum|first = Allen|authorlink=Allen Tannenbaum | title = Three snippets of curve evolution theory in computer vision | journal = Mathematical and Computer Modelling | volume = 24 | issue = 5 | pages = 103–118 | year = 1996 | doi=10.1016/0895-7177(96)00117-3| doi-access = free }}.

==Open source software==
* [http://www.insight-journal.org/browse/publication/181 ITK] (C++)
* [http://imagejdocu.tudor.lu/doku.php?id=plugin:morphology:skeletonize3d:start Skeletonize3D] (Java)
* [https://github.com/erich666/GraphicsGems/blob/master/gemsiv/thin_image.c Graphics gems IV] (C)
* [http://personal.traclabs.com/~pbeeson/software.html#EVG EVG-Thin] (C++)
* [[NeuronStudio]]

==External links==
* [http://homepages.inf.ed.ac.uk/rbf/HIPR2/skeleton.htm Skeletonization/Medial Axis Transform]
* [https://www.cs.ru.nl/~ths/rt2/col/h9/9gebiedENG.html#9.2.4 Skeletons of a region]
* [http://www.citr.auckland.ac.nz/techreports/2002/CITR-TR-112.pdf Skeletons in Digital image processing (pdf)]
* [https://web.archive.org/web/20061130075721/http://www-igm.univ-mlv.fr/LabInfo/rapportsInternes/2006/01.pdf Comparison of 15 line thinning algorithms]
* [https://web.archive.org/web/20110719231706/http://mecca.louisville.edu/~msabry/projects/cskel.htm Skeletonization using Level Set Methods]
* [https://web.archive.org/web/20110720095326/http://www.cvip.uofl.edu/~msabry/home/Publications/Hassouna_Farag_ICCV_2007.pdf Curve Skeletons]
* [http://www.bucksch.nl Skeletons from laser scanned point clouds (Homepage)]

[[Category:Image processing]]
[[Category:Digital geometry]]

Latest revision as of 13:03, 18 November 2024

A shape and its skeleton, computed with a topology-preserving thinning algorithm.

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, etc.

In the technical literature, the concepts of skeleton and medial axis are used interchangeably by some authors,[1][2] while some other authors[3][4][5] 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.[3]

Skeletons are widely used in computer vision, image analysis, pattern recognition and digital image processing for purposes such as optical character recognition, fingerprint recognition, visual inspection or compression. Within the life sciences skeletons found extensive use to characterize protein folding[6] and plant morphology on various biological scales.[7]

Mathematical definitions

[edit]

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

[edit]

In his seminal paper, Harry Blum[8] of the Air Force Cambridge Research Laboratories at Hanscom Air Force Base, in Bedford, 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)

[edit]

A disk (or ball) B is said to be 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.[9]

Centers of bi-tangent circles

[edit]

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.[10] 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

[edit]

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.[3] 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. Ridges may have varying height, so a point on the ridge may be lower than its immediate neighbor on the ridge. It is thus not a local maximum, even though it belongs to the ridge. It is, however, less far away vertically than its ground distance would warrant. Otherwise it would be part of the slope.

Other definitions

[edit]
  • 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

[edit]

There are many different algorithms for computing skeletons for shapes in digital images, as well as continuous sets.

Skeletonization algorithms can sometimes create unwanted branches on the output skeletons. Pruning algorithms are often used to remove these branches.

See also

[edit]

Notes

[edit]
  1. ^ Jain, Kasturi & Schunck (1995), Section 2.5.10, p. 55; Golland & Grimson (2000); Dougherty (1992); Ogniewicz (1995).
  2. ^ a b Gonzales & Woods (2001), Section 11.1.5, p. 650
  3. ^ a b c d A. K. Jain (1989), Section 9.9, p. 382.
  4. ^ Serra (1982).
  5. ^ a b Sethian (1999), Section 17.5.2, p. 234.
  6. ^ Abeysinghe et al. (2008)
  7. ^ Bucksch (2014)
  8. ^ Harry Blum (1967)
  9. ^ A. K. Jain (1989), Section 9.9, p. 387.
  10. ^ a b Gonzales & Woods (2001), Section 9.5.7, p. 543.
  11. ^ Abeysinghe et al. (2008).
  12. ^ Kimmel et al. (1995).
  13. ^ Tannenbaum (1996)
  14. ^ Bai, Longin & Wenyu (2007).
  15. ^ A. K. Jain (1989), Section 9.9, p. 389.
  16. ^ Zhang, T. Y.; Suen, C. Y. (1984-03-01). "A fast parallel algorithm for thinning digital patterns". Communications of the ACM. 27 (3): 236–239. doi:10.1145/357994.358023. ISSN 0001-0782. S2CID 39713481.

References

[edit]

Open source software

[edit]
[edit]