I am a bit confused on the difference between the euclidean skeleton and the

medial axis for a 2d curve.

Their definitions seem to be identical.

Euclidean skeleton: the set of points X equidistant from at least two

points of the curve, provided the distances are global minima

Medial axis: the locus of the centers of all maximal discs contained in

the shape. A maximal disc contained in the shape is any circle with its

interior that is contained in the shape (i.e., has empty intersection

with the exterior of the shape) such that the circle touches the

boundary of the shape at two or more points

Quote:>So, is there any difference between the two?

The definitions are the same but the implementation is very different and so

may be the results when performed on a real image made of finite pixels. The

skeleton is typically generated by a sequential erosion, that takes off

boundary pixels until no more can be removed without breaking the feature into

parts. That produces a line of pixels that lies near (but not always exactly

on) the midline. For a simple example consider a feature that is 6 pixels wide.

Depending on which side you started the erosion, the skeleton would lie on

either column 3 or 4, either of which is slightly wrong. The medial axis on the

other hand produces a set of points (not pixels) so its location is exact. Of

course, when it is time to represent it on the image, it still has to be

reduced to pixels and so it may be displaced from the theoretical location but

some consistent rules for rounding off can be used, or an antialiased line can

be drawn. Also, while it is not part of the definition above, the medial axis

transform is often represented with values along the line that are the radii of

the inscribed circles at each location, so it contains more information about

the original feature "thickness" than the skeleton does. For all sorts of

reasons the medial axis is a better tool, but as a practical matter most real

programs generate the skeleton because it is faster. Regardless of how the

program generates the data, the name given to the result may be wrong (i.e.,

since "skeleton" is a more widely known term, that name may be used even if the

result is the MAT).