In order to transform our image coordinate 2-d contours into world coordinates, we implemented a stereo vision algorithm by Aloimonos. This algorithm can compute the depth of a planar contour without requiring correspondence between individual elements in a pair of images. Correspondence is instead required between contours. This is readily obtainable when the relationships are known, as in our case. Essentially, it uses the disparity of the centers of mass of a corresponding pair of closed contours.
If the orientation of the contour's plane is known, disparity of the centers of mass is sufficient. If not, it becomes necessary to split the contours' outlines into three roughly corresponding parts. This gives us three equations of the form:
where , , and are the parameters of a contour's plane.
The technique used to split contours was to divide each of the pair into thirds. Splitting for one image could be started at any location, but the starting location for the other should roughly correspond to it. This was done by translating the first contour's starting point by the disparity of the contours' centers of mass.
The technique described above produces known 3-d coordinates only at locations marked by discontinuities in the surface geometry. Although the relationship between these contours can be used to infer something about the intervening surface, not enough information is present to produce an accurate model. To specify depths for these smooth intervening areas, we introduced hand-collected information, similar to what might be gathered by a CMM.