# Morphological skeleton

In digital image processing, morphological skeleton is a skeleton (or medial axis) representation of a shape or binary image, computed by means of morphological operators.

Examples of skeleton extraction of figures in the binary image

Morphological skeletons are of two kinds:

## Skeleton by openings

### Lantuéjoul's formula

#### Continuous images

In (Lantuéjoul 1977),[1] Lantuéjoul derived the following morphological formula for the skeleton of a continuous binary image ${\displaystyle X\subset \mathbb {R} ^{2}}$:

${\displaystyle S(X)=\bigcup _{\rho >0}\bigcap _{\mu >0}\left[(X\ominus \rho B)-(X\ominus \rho B)\circ \mu {\overline {B}}\right]}$,

where ${\displaystyle \ominus }$ and ${\displaystyle \circ }$ are the morphological erosion and opening, respectively, ${\displaystyle \rho B}$ is an open ball of radius ${\displaystyle \rho }$, and ${\displaystyle {\overline {B}}}$ is the closure of ${\displaystyle B}$.

#### Discrete images

Let ${\displaystyle \{nB\}}$, ${\displaystyle n=0,1,\ldots }$, be a family of shapes, where B is a structuring element,

${\displaystyle nB=\underbrace {B\oplus \cdots \oplus B} _{n{\mbox{ times}}}}$, and
${\displaystyle 0B=\{o\}}$, where o denotes the origin.

The variable n is called the size of the structuring element.

Lantuéjoul's formula has been discretized as follows. For a discrete binary image ${\displaystyle X\subset \mathbb {Z} ^{2}}$, the skeleton S(X) is the union of the skeleton subsets ${\displaystyle \{S_{n}(X)\}}$, ${\displaystyle n=0,1,\ldots ,N}$, where:

${\displaystyle S_{n}(X)=(X\ominus nB)-(X\ominus nB)\circ B}$.

#### Reconstruction from the skeleton

The original shape X can be reconstructed from the set of skeleton subsets ${\displaystyle \{S_{n}(X)\}}$ as follows:

${\displaystyle X=\bigcup _{n}(S_{n}(X)\oplus nB)}$.

Partial reconstructions can also be performed, leading to opened versions of the original shape:

${\displaystyle \bigcup _{n\geq m}(S_{n}(X)\oplus nB)=X\circ mB}$.

#### The skeleton as the centers of the maximal disks

Let ${\displaystyle nB_{z}}$ be the translated version of ${\displaystyle nB}$ to the point z, that is, ${\displaystyle nB_{z}=\{x\in E|x-z\in nB\}}$.

A shape ${\displaystyle nB_{z}}$ centered at z is called a maximal disk in a set A when:

• ${\displaystyle nB_{z}\in A}$, and
• if, for some integer m and some point y, ${\displaystyle nB_{z}\subseteq mB_{y}}$, then ${\displaystyle mB_{y}\not \subseteq A}$.

Each skeleton subset ${\displaystyle S_{n}(X)}$ consists of the centers of all maximal disks of size n.

## Performing Morphological Skeletonization on Images

Skeleton image of fingerprint operated on by Matlab. Original, unaltered image is on the left. The middle image has generated using bwmorph(Matlab) without preprocessing. The rightmost image, was preprocessed using Automatic Thresholding to increase contrast and skeleton was generated using bwmorph

Morphological Skeletonization can be considered as a controlled erosion process. This involves shrinking the image until the area of interest is 1 pixel wide. This can allow quick and accurate image processing on an otherwise large and memory intensive operation. A great example of using skeletonization on an image is processing fingerprints. This can be quickly accomplished using bwmorph; a built-in Matlab function which will implement the Skeletonization Morphology technique to the image.

The image to the right shows the extent of what skeleton morphology can accomplish. Given a partial image, it is possible to extract a much fuller picture. Properly pre-processing the image with a simple Auto Threshold grayscale to binary converter will give the skeletonization function an easier time thinning. The higher contrast ratio will allow the lines to joined in a more accurate manner. Allowing to properly reconstruct the fingerprint.

skelIm = bwmorph(orIm,'skel',Inf); %Function used to generate Skeletonization Images