You have untarred COMMON LISP code for finding salient convex groups
in an image.  The algorithm implemented here is described most fully
in: MIT Ai lab Technical Report #1416, "Recognizing 3-D Objects Using
2-D Images".  The system is also described in a forthcoming paper in
IEEE Trans. PAMI, in `Finding Salient Convex Groups'', Proc.\ of the
DIMACS Workshop on Partitioning Data Sets.  pp.~{237--269}, 1995, and,
very briefly, in ``Robust and Efficient Detection of Convex Groups'',
IEEE Conf.\ on Computer Vision and Pattern Recognition. pp.~{770--771}, 
1993.  Here is the abstract of the PAMI paper:

  This paper describes an algorithm that robustly locates {\em salient}
  convex collections of line segments in an image.  The algorithm is
  guaranteed to find all convex sets of line segments in which the
  length of the gaps between segments is smaller than some fixed
  proportion of the total length of the lines.  This enables the
  algorithm to find convex groups whose contours are partially occluded
  or a missing due to noise.  We give an expected case analysis of
  the algorithm's performance.  This demonstrates that salient convexity
  is unlikely to occur at random, and hence is a strong clue that
  grouped line segments reflect underlying structure in the scene.  We
  also show that our algorithm's run time is $O(n^2\log(n) + nm)$, when
  we wish to find the $m$ most salient groups in an image with $n$ line
  segments.  We support this analysis with experiments on real data, and
  demonstrate the grouping system as part of a complete recognition
  system.

Currently, this paper can be retrieved from my web page:
Web: http://www.neci.nj.nec.com/homepages/dwj.html.  Questions or comments
on this paper or about the code should be directed to:
David Jacobs: dwj@research.nj.nec.com.  I do not promise 
to maintain this code, or fix any bugs, however I will be
glad to receive any feedback from user.  
	
You will need to make two changes to this code, before running.
In the file group/system.lisp, two global variables are defined:
*home-directory* and *binary-type*.  *home-directory* should be changed
to the main directory in which you put this code, ie it should contain
the two subdirectories group and geometry.  *binary-type* may need to
be changed to the appropriate type used to denote binary files in
your lisp system.  It is currently "fasl", which is right for Allegro
Common Lisp.

There are also known incompatibilities between Allegro and other Lisps.
For example, Lucid seems to want the argument to IN-PACKAGE to be quoted
as a symbol, while Allegro does not.  MAKE-PATHNAME also seems to work
a little differently.  So if you are not using Allegro you should expect
to have to do a little hacking to get the code to run, in order to overcome
incompatibilities between different common lisps.    

The file loading-log shows what it looks like when I compile and load 
this code using Allegro common lisp.  This shows, for example, the
compiler warnings that I ignore.

To get started using the code, have a look at: group/tutorial.lisp.
This provides some sample code to call the convex grouping system.