Pattern Recognition

(Size Functions)

A brief introduction to Size Functions

Theoretical research


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.


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


  • 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