How it works
The camera calibration is done with a calibration object with black dots on a white surface. These regions are detected in the image by the big luminosity differences and the mean is calculated. These 2d coordinates are matched with the corresponding 3d coordinates. Now the intrinsic and extrinsic camera parameters can be estimated. To determine the rotation axis of the turn table the calibration object can be placed such that the front edge corresponds to the axis or it can also be calculated by using two shots with different rotation angles (this is not very precise due to errors produced because of the used calibration method).
Now the object to be scanned is shot several times while rotating it after each photo by the same angle. This can be repeated with different camera perspectives.
The photos are segmented which means recognising background and object. To achieve that it is assumed that there is no object in the image corners and thus they will be in background color. Similar colored image regions are classified as background and very different regions as object. Still not classified regions are filled afterwards by neighbour regions using a marker controlled watershed transformation on the gradient image. Even with this quit complicated method a manual segmentation or correction may be necessary when dealing with bad lighting conditions for example.
generation of 3d model with triangles
For generating the 3d model a 3d grid is created. For each grid point is calculated wheter it belongs to the object or not by determining the projections on all segmented photos. If all projections belong to the object the grid point does, too. With the marching cubes algorithm corresponding triangles are generated. This is done by using a table for each possible configuration of the grid points.
The model may be texured by calculating a color for each triangle vertex. This texturing method is simple but requires a high geometric resolution for a high texture resolution.
© Marcel Lancelle 2002-2003, TU-Braunschweig, Germany