What is Crack Skeletonization?
Definition
Crack skeletonization is an image processing step that reduces a binary crack mask to a line one pixel wide, called the skeleton. A binary crack mask is an image where crack pixels have one value and all other pixels have another. A model produces it by crack segmentation .
Skeletonization is used for feature extraction and to represent the topology of an object. Topology here means how the parts of the crack connect. In crack work, the skeleton is a way to show the topology of the crack and to measure it. Fan et al. use a one-pixel skeleton for this purpose (Fan et al., 2020 ).
Methods
Thinning methods remove border pixels from the mask in repeated passes. They stop when no pixel can be removed without breaking the connectivity of the object.
- Zhang-Suen (1984) makes successive passes and removes border pixels. The scikit-image function
skeletonizeuses Zhang’s method for 2-D images. It is also the default ofximgproc::thinningin the OpenCV contrib modules. That function takes an 8-bit single-channel image with the crack at 255 (OpenCV contrib ). - Guo-Hall (1989) is a parallel thinning algorithm with two sub-iterations in each pass. It preserves eight-connected components. The scikit-image function
thinimplements it, and the OpenCVximgproc::thinningfunction offers it. - Lee (1994) works on a 3 by 3 by 3 neighborhood. It is designed for 3-D images, and scikit-image shows it on a 2-D image only for illustration.
- The medial axis is the set of points that have more than one closest point on the object boundary. It can also return the distance to the boundary, which gives an estimate of the local width.
For a skeleton with fewer branches, scikit-image recommends its skeletonize function over the medial axis (scikit-image
). Fan et al. chose a medial-axis algorithm for their crack skeletons.
Spurs and branches
A rough mask edge gives the skeleton short side branches, called spurs. The non-smooth boundary of the crack affects the skeleton. Wang and Pang note that the skeleton then does not describe the crack precisely (Wang and Pang, 2025 ).
You can find the branches of a skeleton with a graph analysis. The skan library counts the neighbours of each skeleton pixel. A pixel with three or more branches is a junction, and a pixel where the skeleton ends is an endpoint. The library then gives one table row per branch, with its length and its type. The types are endpoint-to-endpoint, junction-to-endpoint, junction-to-junction and isolated cycle (skan documentation ). With such a table, you can find short end branches and decide whether to remove them.
Crack length and width from the skeleton
The length of a crack follows from its skeleton. Fan et al. sum the lengths of the skeleton elements, scaled by the calibrated displacement of the pixels. They assume no geometric distortion in the image. The calibration is the scale of the image in millimetres per pixel. See pixel to millimetre calibration .
The skeleton also gives a width estimate. The distance from each skeleton pixel to the background is an estimate of the local width. Other methods define the width as the shortest distance from the skeleton to the crack boundary. A rough boundary makes the skeleton imprecise, so the width estimate can also be imprecise. See crack width measurement for how pavement manuals use the width.
Crack length in PAVER
The PAVER manual for asphalt airfields asks for the length of longitudinal and transverse cracks, in linear feet or linear metres, together with their severity. If the severity changes along a crack, the manual asks you to record each portion separately. It asks for the area of alligator cracking, in square feet or square metres.
The severity of a crack depends on spalling, FOD potential and the condition of the filler. For a non-filled crack, the mean width also counts, with a limit of 6 mm. A skeleton gives a centreline length. It does not give any of these severity factors.
A skeleton is one way to get a centreline length from a crack mask. The manual does not name this or any other method.
Frequently Asked Questions
- What is crack skeletonization?
- Crack skeletonization is an image processing step that reduces a binary crack mask to a line one pixel wide. The skeleton keeps the shape and connections of the crack and drops its width. It is used to represent the topology of the crack and to extract features.
- Which algorithms do skeletonization?
- Thinning methods such as Zhang-Suen and Guo-Hall remove border pixels in repeated passes. The medial axis transform works from the distance to the object boundary instead. The scikit-image library offers all three in its morphology module. The OpenCV ximgproc module offers Zhang-Suen and Guo-Hall.
- What is the difference between thinning and the medial axis?
- Thinning removes border pixels until only a line is left. The medial axis is the set of points with more than one closest point on the object boundary. The scikit-image page recommends skeletonize over the medial axis for a skeleton with fewer branches.
- How do you measure crack length from a skeleton?
- Add up the calibrated length of the skeleton pixels along the crack. Fan et al. give the sum of the calibrated pixel displacements along the skeleton as the crack length. The result depends on the image scale in millimetres per pixel.
- How do you get crack width from a skeleton?
- Use the distance from each skeleton pixel to the background as an estimate of the local width. The scikit-image documentation shows this with a distance transform. Methods differ on how they define width, so check which one a tool uses.
- Why does a crack skeleton have short side branches?
- A rough edge of the mask gives the skeleton short side branches called spurs. Wang and Pang note that the skeleton is affected by the non-smooth boundary of the crack. A branch table lets you find short end branches and decide whether to remove them.
- Does the PAVER manual require skeletonization?
- No. The PAVER asphalt manual asks for the length and severity of longitudinal and transverse cracks, in linear feet or metres. It does not name a method to find the length.
References
- skimage-skeleton
- Skeletonize (scikit-image gallery example) scikit-image
- skimage-api-morphology
- skimage.morphology API reference, thin and skeletonize scikit-image
- fan-2020-coatings
- Ensemble of Deep Convolutional Neural Networks for Automatic Pavement Crack Detection and Measurement (Coatings 10(2), 152, 2020) Fan et al., arXiv 2002.03241
- wang-pang-2025
- Fast Measuring Pavement Crack Width by Cascading Principal Component Analysis Wang and Pang, arXiv 2511.02144
- opencv-ximgproc
- opencv_contrib, ximgproc.hpp (thinning function and ThinningTypes enum) OpenCV
- skan-docs
- Getting started with skan (skeleton analysis in Python) skan documentation
- faa-paver-asphalt
- PAVER Distress Identification Manual for Asphalt Surfaced Airfields U.S. Army Corps of Engineers / FAA
This is a reference entry. TarmacView provides drone inspection services and doesn't sell the equipment or materials described in this glossary.