Suppose you have a triangle with unknown side lengths hanging in space with unknown position and orientation (i.e. nothing about the dimensions or position or orientation of the triangle is known).
Now you take two images of this triangle by two cameras (or one camera but re-positioned/re-oriented). The camera position/orientation for each image is known, as well as its focal length.
The correspondence between the vertices in the images is known.
From the two images of the triangle, is it possible to compute the coordinates of the vertices of the triangle?
Is there more than one possible set of coordinates?
My approach: is outlined in my answer below.
Let $A_1, A_2, A_3$ be the three vertices in the first image and $B_1, B_2, B_3$ be the corresponding vertices in the second image (these are two-dimensional vectors), and let $V_1, V_2, V_3$ be the corresponding three-dimensional vertices that we're after.
Further, let E_1 be the position of the camera for the first image, and E_2 be the position of the camera for the second image, and let R_1 be the rotation matrix specifying the orientation (with respect to the world) of the camera in the first image and $R_2$ be the rotation matrix specifying the orientation of the camera in the second image.
Then we can write
$ V_1 = E_1 + t_1 R_1 P_1 = E_2 + t_1' R_2 P_1' $
$ V_2 = E_1 + t_2 R_1 P_2 = E_2 + t_2' R_2 P_2' $
$ V_3 = E_1 + t_3 R_1 P_3 = E_2 + t_3' R_2 P_3' $
where
$ P_i = \begin{bmatrix} A_i \\ -z_0 \end{bmatrix} $
and
$ P_i' = \begin{bmatrix} B_i \\ - z_0 \end{bmatrix} $
The above equations are equations of straight lines in space. If the coordinates are exact we can precisely find their intersection and determine $t_1, t_2 , t_3 $ (as well as $t_1' , t_2', t_3'$). If not, then we can use least-squares to find the best value that fits the intersection of the two line pairs for the three vertices.
And that's all we need. Once we have the exact or approximate $t_1, t_2, t_3$ then we have determined $V_1, V_2, V_3$ the world coordinates of the three vertices.