Frequent Asked Questions about Size Functions

What are Size Functions?
Size Functions are a new kind of mathematical transform. More precisely each Size Function is the output of a mathematical transform that takes a topological space X and a function from it to the real numbers as an input. Each Size Function is a function from the real plane to the extended natural numbers (extended means that the infinite value is allowed). An example can make all this clearer:

Usually the topological space X is an image and the function from X to the real numbers (called measuring function) is chosen depending on the properties of the shape we are interested in.
Are Size Functions easily computable?
How much time does it take to compute a Size Function?
What is the complexity of computation of Size Functions?
Computing Size Functions at a point means counting the connected components of a graph: this fact gives the complexity of such a computation. If you want to see how easy it is to compute Size Functions, please download SketchUp 2.0: this program runs under Windows and computes three Size Functions each time in order to recognize manual sketches of objects chosen within a given set. You can see that a 486 PC can do that fast. Obviously, if you manage large images and use higher dimensional measuring functions the time can increase and a 486 PC may be not so fast. Is it strange?
You can also download SizeTool 1.0 , a tool for the programmers all written in standard C.
Can Size Functions be of use only to study the shape of a curve?
You can use Size Functions to study any topological space. In practice, it means that you can compute Size Functions of B/W pictures, color pictures, sound waves, multidimensional medical plots, subsets in the Euclidean Space and anything that can be seen as a topological space. We give a simple example:

NB: previous Size Functions are displayed in the square of vertices (xmin,ymin), (xmax,ymax), (xmin,ymax) and (xmax,ymin).

We point out that different measuring functions generate quite different Size Functions.
Are Size Functions resistant to noise?
Are Size Functions resistant to occlusions?

Size Functions have been defined in such a way that they can potentially resist to non-destructive noise and occlusions. The important fact is that the information in Size Functions is distributed all over the real plane. So, when noise or occlusions destroy some information somewhere in the plane, you can usually find the information you need in some other place of the same real plane. If the measuring function has been chosen in an appropriate way, such an information can be rich enough to allow the recognition of the considered object. Obviously, preprocessing the data can make the analysis much simpler, but it is not indispensable.
In the following example you can see three images containing a wrench and a partially occluded wrench, and a fourth image where only a nutcracker appears. If you consider the topological space of all pairs of black points in each image, and measure each pair (P,Q) by the function f((P,Q))=-||P-Q||, then you obtain the displayed Size Functions. You can see that the presence of the marked ``substructure'' reveals when a wrench is in the image.

How can I compare Size Functions?
A simple way for comparing Size Functions is to compute the distance in the space L^2 with respect to a chosen compact set K. In other words we can measure how much the Size Functions f and g differ from each other in a compact subset K of the real plane by computing the integral of the function (f-g)^2 on K.
Another way for comparing Size Functions can be obtained by observing that the restriction of a Size Function to a compact set K coincides (almost everywhere) with the restriction to K of a finite sum of triangular functions. By definition, the triangular function associated to a point (a,b) with a < b takes the value 1 at each point (x,y) with a <= x < y < b, and the value 0 elsewhere. In other words, it is the characteristic function of a right-angled triangle with its hypothenuse on the line x=y. Therefore each Size Function is equivalent to a finite set of points in the real plane, each of them endowed with a multiplicity (see figures). This fact allows us to reduce the problem of comparing Size Functions to the one of comparing finite sets of points in the real plane. You can download a gzipped PostScript file containing more information about this latter way of describing and comparing size functions.

How can I obtain a standard matrix for each size function?
You can find some information about this subject by downloading the gzipped PostScript file
Are there practical applications of Size Functions?
There have been concrete applications to the recognition of hand-drawn sketches (the already mentioned program SketchUp), of tree leaves, of handwritten numerals, of letters in the sign language, of toy cars, of white blood cells, of characters and writers in on-line handwriting, and to the measure of coronary tortuosity. Signature validation and ECG interpretation are our next targets.

Where can I find references about Size Functions?
Where can I find software for computing Size Functions?
You can download free software about Size Functions at the URL:
I have made my own implementation for computing Size Functions. I have applied that to a large picture and obtained a Size Graph with 876.543 vertices. How can I compute rapidly the corresponding Size Function?
Before computing Size Functions you could use some reduction processes. You can download a gzipped PostScript preprint describing two of such techniques, capable of simplifying Size Graphs without changing the corresponding Size Functions. See also the paper Frosini, P., Pittore, M., New methods for reducing size graphs, Intern. J. Computer Math. 70, 505-517, 1999 .
What is SketchUp?
SketchUp is a demonstrative program for Windows 3.1 and Windows 95/98. It shows the capability of Size Functions in describing shapes. Draw the profile of an object chosen in this set: nut, screwdriver, scissors, drill, compass, wrench, hammer: SketchUp will try to recognize your choice. You can freely download SketchUp 2.0 (file sketchup.tar - approximately 4Mb) at the URL:
What is SizeTool?
SizeTool is a tool for the programmers all written in standard C (a part from the use of dirent.h libraries); you can find the Size Functions engine, some measuring functions implemented and the main code to use and correlate them.
You can freely download SizeTool 1.0 (file SizeTool.1.0.tar.gz - approximately 120Kb) at the URL:
Where can I find more information about Size Functions and their implementation?
Please send all questions to
Updating: 21 May 2002