**Name**

**gass** Geometric Affine Scale Space of curves (Dlists)

**Command Synopsis**

**gass** [-f *first*] [-l *last*] [-e *eps*] [-s *step*] [-n *n*] [-r *r*] [-v] *in* *out*

-ffirst: first scale (default 0.)

-llast: last scale (default 1.)

-eeps: relative sampling precision (-log10 scale), in [2,13] (default 3.)

-sstep: maximal scale step

-nn: or minimal number of iterations (default 5)

-rr: bounding box radius (default: minimal)

-v : verbose mode

in: input curves (Dlists)

out: output curves (Dlists)

**Function Summary**

Dlists gass (in , out , first , last , eps , step , n , r , v )

Dlists in , out ;

double *first , *last , *eps , *step , *r ;

char *v ;

int *n ;

**Description**

This module implements numerically the Affine Scale Space of curves.
An initial curve
*s* **C**(*s*, 0) evolves in function
of time *t* according to the
equation

(*s*, *t*) = (*s*, *t*) **N**(*s*, *t*),

where represents the local curvature of
`amss`

).
The Affine Scale Space is the only regular semigroup that preserves
inclusion and that commutes with special affine transforms of the plane.

The numerical scheme used in this module is based on the iteration
of a geometric semi-local operator called *affine erosion*.
This operator, described in [Moi98], is ``fully consistent'' in the
sense that it satisfies all the axioms that define the Affine Scale
Space (except the semigroup property of course, otherwise it would be
the Affine Scale Space itself). Indeed, it preserves inclusion
and commutes with special affine transforms.

This module computes the evolution of each curve of the Dlists *in*
and puts it in the Dlists *out*.
The parameter *last* defines the final scale (time) of evolution.
This scale is normalized in such a way that a circle with radius *t*
should vanish exactly at scale *t*. Since this normalization is not
linear on *t*, it imposes to specify a *first* scale when the
evolution has to be iterated. The *eps* parameter tells the program
how precise it should be in the representation of curves. Combined
with the *r* parameter, it defines the spatial quantization step
= 10^{-eps . }*r*.
All the curves used in the algorithm will
be sampled in such a way that the distance between 2 successive points
lies in
[, 2]. If not automatically set, the *r*
parameter is defined by the maximum distance to origin given by an
input point.

The default values of *eps* is 3. For more accurate computations,
you can use greater values (3.5, 4, 5, ...) but remember that
the cost in memory and in computation time depends linearly on 10^{eps}.

The scale quantization can be fixed in two ways: either by specifying a maximal scale step or by specifying a minimum number of iterations. These are only bounds since the algorithm may (and will) have to change this value for some iterations due to the fact that inflexion points vanish. Hence, the actual scale step will be smaller and the actual number of iterations will be grater. The default is a minimum of 5 iterations.

The `-v`

option displays some information at each iteration :
the number of convex components found at the begining of the iteration,
the effective scale of erosion applied, and the total evolution scale
achieved so far.

**See Also**

**Version 1.0**

Last Modification date : Thu Apr 15 08:29:13 2004

**Author**

Lionel Moisan