We use Steger's second-derivative hysteresis-threshold algorithm
[35]. The essential idea of this scheme is simple. A ridge in a
surface will have high curvature (second derivative of ) in the
direction perpendicular to the ridge. Furthermore, the first derivative will
vanish at the top of the ridge, since it is a local maximum. Thus, ridges are
identified as contiguous sets of point at which has a
high-curvature local maximum. We have included Stegers code
[34] in the GRASP package with minor changes. The main
aim of making the the changes was to enable Steger's routines to take
a map whose pixels are of type `float` rather than `unsigned
char`. For details about this algorithm please see [33,35]