StrataQuest Home › StrataQuest Glossary › Skeleton & spur operations
BOM Operation

Skeleton & spur operations

Reduce a region to its centerline and prune the branches

Definition
The Skeleton operation reduces each object in a binary maskLoading... to a 1-pixel-wide centerline, preserving its topology and Euler number. The result is a maskLoading... that reads as a graph: end points, branch points and the line pixels between them. Seven more Morphological operations find those points, prune, shorten or extend spurs, or cut the skeleton into equal-length pieces.
Supporting
Measurements Mask - Cellular
Video · Supporting
Three kinds of skeleton pixel
End point, branch point, line pixel
Spurs are short dead ends
Pruned by area, by angle, or trimmed
Split cuts by length
Equal pieces, returned as events
Skeleton character reflects mask character
Smooth in, smooth out

Picking the right skeleton engine

Start from what you need from the skeleton. All eight operations are in the Basic Operations Module's Morphological group, take a mask, and return a mask unless noted.

Need the skeleton itself: Skeleton. Skeleton value sets whether skeleton pixels are written as 1 or 255 (default 255).

Need only the pixels where lines meet: Skeleton - branch points.

Need only the pixels where lines terminate: Skeleton - end points.

Want to remove short spurs that don't count as structure: Skeleton - remove spurs. Spurs with an area below Area threshold (px) are deleted. No. of iterations (default 1) repeats the pass, because removing one spur can expose another; the reference's example removes spurs under 50 pixels in 3 runs. On a 1-pixel line, area is close to length.

Want to remove spurs by the angle they make with the rest of the skeleton at their branch point: Skeleton - remove spurs (by angle). Spur -angle estimation distance (px) sets how far from the branch point the angles are estimated. Two Spur -validate by angle limits (defaults 0 and 30 degrees) set the angle window, and Straight line -accepted angle error (degrees) sets when two elements count as one straight line. Branchpoints -merge near (default Yes) merges branch points closer than Branch-points -max distance for merge (px) (default 2).

Want to trim spurs without removing them entirely: Skeleton - shorten spurs, which cuts Cut length (px) (default 5) from each spur.

Want to extend spurs that stop just short of the rest of the skeleton: Skeleton - extend spurs. It estimates each spur's direction from its last Spur - direction estimation length (px) and extends it by Spur - extension length (px). The Valid extensions settings keep all extensions, only those meeting another extension, or only those meeting the skeleton. The reference uses it to close gaps left by poor contrast or noise.

Want the skeleton in equal-length pieces you can measure: Skeleton - split. It returns a coded image, one event per segment of Split distance (px); Undersized rejection percent determines whether a short leftover piece counts.

Remove spurs and shorten spurs share Consider end points on border (default Yes). An end point at the image border may be where the skeleton continues into the next field of viewLoading..., and this setting says whether to treat it as a real end. Most workflows chain several operations: Skeleton, then remove spurs, then count branch points and end points or split for per-segment measurement.

Source: StrataQuest 8.1 Engines Reference, ch. 6.8 (pp. 256–281); ch. 6.7 (pp. 210–211).

What the skeleton is good for

The skeleton is the right representation when shape topology matters more than shape geometry. For a network of membranes, vessels or fibers, the questions are total length, how often it branches and how many ends it has. The skeleton answers them almost by counting: on a 1-pixel line, length is close to the pixel count, and branch points and end points are pixels you can find. The original mask answers them only through measurements that have to untangle line thickness from line length.

"Topology preserved" has a precise meaning here. In image processing generally, the Euler number of a binary image is the number of objects minus the number of holes. Skeletonization keeps it, so a ring stays a ring and a solid blob shrinks to a line or a point instead of breaking apart. The reference's examples skeletonize a membrane-area mask from a fat tissue sample, where each fat cell's outline becomes a closed loop.

The textbook picture is the medial axis: the ridge of the distance mapLoading..., the set of points equally far from two or more boundary points. A real skeletonization approximates it on pixels, and the reference doesn't say which algorithm StrataQuest uses. The reference does show a related trick in the LogicalLoading... chapter: counting each graph pixel's neighbors gives a score of 1 at end points, 2 along segments and 3 or 4 at intersections, and an And (with value) of 1 then picks out the odd scores, the end points and three-way junctions.

For blob-like objects such as cells and nuclei, the skeleton usually doesn't help: the topology is only "this is a blob," and the labeled maskLoading... is the better representation. The skeleton is for line-shaped, branched or fiber-shaped structures, where the centerline carries more information than the area.

Share This Term
Term Connections