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
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
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
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
We point out that different measuring functions generate quite different Size
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
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.
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
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: http://vis.dm.unibo.it/sizefcts/files.
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.
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
Please send all questions to firstname.lastname@example.org
Updating: 21 May 2002