the light of the algorithm described in "Single View Metrology" by
Criminisi, Reid, and Zisserman, ICCV 1999, we plan to develop a system that can
reconstruct 3D texture-mapped models from a single image and user interactions.
step 1: Define parallel lines to calculate vanishing points, then we can get a 3x4 projection matrix P = [p1 p2 p3 p4], where p1 = Vx, p2 = Vy, p3 = Vz and p4 = the origin of the world coordinate system (which is also defined by the user);
step2: Define reference lines to calculate alphas. We wish to measure the length of a line specified by a base point B on the XY-plane and top point T in the scene. These points may be chosen as respectively (X, Y, 0) and (X, Y, Z), and their images are b and t. If P is the projection matrix then the image coordinates and the reference length are
step3: Define measuring lines to recover the 3D position (X, Y, Z). It is straightforward to calculate the Z component from the idea in previous step. To calculate X and Y components, we should use the plane to plane homology H' which can be extracted from the projection matrix ignoring the third column:
Then the inverse of H' maps the image point of (X, Y, Z) onto the reference plane at (X, Y, 0).
We use the points we have measured to define several planar patches, then we compute texture maps for each of these patches.
Since most patches are not rectangular regions, we should perform a standard rectification.
Finally, we use VRML to create a 3D model in order to view our result in IE or Netscape.
final system has the following functionalities:
and display images
reference planes, lines and points
the measurements in the image he/she gets from realistic objects
the objects in the image he/she wants to reconstruct 3D models from
vanishing points and vanishing lines
measurements of objects
mapping for 3D models
a VRML model
Original Image VRML Model