# 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.
Morphological skeletons are of two kinds:
* Those defined by means of morphological openings, from which the original shape can be reconstructed,
* Those computed by means of the hit-or-miss transform, which preserve the shape's topology.

## Skeleton by openings
### Lantuéjoul's formula
#### Continuous images

In (Lantuéjoul 1977), Lantuéjoul derived the following morphological formula for the skeleton of a continuous binary image $X\subset \mathbb {R} ^{2}$:
    $S(X)=\bigcup _{\rho >0}\bigcap _{\mu >0}\left[(X\ominus \rho B)-(X\ominus \rho B)\circ \mu {\overline {B}}\right]$,
where $\ominus$ and $\circ$ are the morphological erosion and opening, respectively, $\rho B$ is an open ball of radius $\rho$, and ${\overline {B}}$ is the closure of $B$.

#### Discrete images

Let $\{nB\}$, $n=0,1,\ldots$, be a family of shapes, where B is a structuring element,
    $nB=\underbrace {B\oplus \cdots \oplus B} _{n{\mbox{ times}}}$, and
    $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 $X\subset \mathbb {Z} ^{2}$, the skeleton S(X) is the union of the skeleton subsets $\{S_{n}(X)\}$, $n=0,1,\ldots ,N$, where:
    $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 $\{S_{n}(X)\}$ as follows:
    $X=\bigcup _{n}(S_{n}(X)\oplus nB)$.
Partial reconstructions can also be performed, leading to opened versions of the original shape:
    $\bigcup _{n\geq m}(S_{n}(X)\oplus nB)=X\circ mB$.

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

Let $nB_{z}$ be the translated version of $nB$ to the point z, that is, $nB_{z}=\{x\in E|x-z\in nB\}$.
A shape $nB_{z}$ centered at z is called a maximal disk in a set A when:
* $nB_{z}\in A$, and
* if, for some integer m and some point y, $nB_{z}\subseteq mB_{y}$, then $mB_{y}\not \subseteq A$.
Each skeleton subset $S_{n}(X)$ consists of the centers of all maximal disks of size n.

## Performing Morphological Skeletonization on Images

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.