Pattern Recognition

(Size Functions)

A brief introduction to Size Functions

Theoretical research

Applications

Download
SketchUp 2.0: this is a demo "toy" program for Windows.

Download SizeTool 1.0.
This is for programmers.

You might want to access its readme file first.

References

A brief introduction to Size Functions

Size Functions are a mathematical tool for describing and comparing shapes of topological spaces
(usually images, but also sound waves, multidimensional medical plots, subsets of a Euclidean space
and so on...). For formal and general definitions we refer to the
references. Here we want only to give the taste of the subject. So, consider a discretization of
the letter "m" traced in the real plane:
it can be seen as a graph.

Our purpose is to define the Size Function *L* associated to the shape of such a letter (it will be a function from the real plane to the extended natural numbers;
here "extended" means that the infinite value is allowed).
In order to do it we have to choose a function *f*
from the points of our letter to the real numbers (we shall call it a *measuring function*).
In other words we want to label each point in our graph by a real number.
Our choice may be completely subjective.
For the sake of simplicity, in our example we shall define *f* as a sort of
normalized ordinate: Set *f(P)=(y(P)-ymin)/(ymax-ymin)* for each point *P*
in the letter, where *y(P)* is the ordinate of *P* and *ymin* and *ymax* are respectively
the minimum and the maximum of *y(P)*, varying the point *P* in
"m".
Now we have a graph, where each vertex is labelled by a real number (see
figure):

For each point *(a,b)* of the half plane *a<=b*
(we shall omit the definition of *L(a,b)*
for *a>b* since it has only technical
relevance)
the Size Function corresponding to our image (and our choice of *f*) is defined this way:
cut away the points of the graph with "measure" strictly greater than
*b* (and the connecting edges, too) and count how many components of the resulting graph contain at least one point labelled
by a value not greater than *a*. Such a number is *L(a,b)*. As
an example, with respect to our choices we have
*L(0.5,0.8)=3* (see figure).

With reference to our example, the Size Function *L* is displayed in the following
figure:

The natural numbers displayed in each region of the real plane are the values taken
by the Size Function in that region.
In order to show what happens when the letter "m" is modified we give a
different instance of "m" and
the corresponding Size Function
(the measuring function is *f* again). You can see the similarity.

To allow a comparison, we display also the Size Function of the
discretization of a letter "n" with respect to *f*.

As you can see the invariance of *f* under translations transfers to *L*.
If you need invariance under a different group G of transformations,
*simply choose a measuring function invariant under G*.
This modularity is the main property of
Size Functions. This way you can easily obtain invariance under rigid motions,
affine transformations,
projective transformations and other.
For more information (e.g., about robustness of Size Functions against noise and their capability
of facing the occlusion problems) we refer to our
FAQ
file.

Theoretical research

Our research about Size Functions mainly concerns these subjects:
Invariance properties of Size Functions
Methods of choice for measuring functions
Structures on manifolds via Size Functions
Connections between Size Functions and Natural Size Distances
Size Groups

Applications

Shape recognition
Hand-written text analysis
Analysis of medical data
Image Analysis

Vision Mathematics Home page

Virtual reality for the visually impaired (VIDET)

##### Updating: 21 May 1999