Principle of meshing:
The 3D coordinates computed from the object do not effectively define the surface of an object. A good way to approximate the surface of an object is to build a mesh of triangles from the 3D coordinates. This requires the extra information of edges and faces of triangles. For the project, we used the program "Zipper" written by Greg Turk and improved by Brian Curless and Afra Zomorodian. Zipper inputs a matrix of 3D range points and creates meshes in different resolutions.
Since all the 3D coordinates computed previously can be indexed by their stripe coordinates and camera frame y-coordinates, we modify the range data structure into a matrix of 3D points. When an index does not correspond to a 3D point, a value negative infinity is assigned with confidence value zero. The matrix is then fed into Zipper (resolution set to 0.005) to produce the mesh. The meshes we reconstructed used Mesh2 (second to best resolution level), but it is fine to use Mesh4 to get a feeling for the mesh.
A few mesh plots are below to illustrate the mesh reconstructions:
Possible irregularities:
The holes on the surface resulted mostly from strong reflections, even if the pot itself has no smooth shiny surface. In fact, no objects are completely Lambertian. The reflection diminishes the stripes projected onto the object, which in turn produces holes on the computed surface. Some of the gaps due to the fact that the camera can not "see" certain portions of the object.