u1 in the first image and u2 in the second. The corners are in the clock-wise order and correspond between the images (this is not used for calibration but later).
vp1 and vp2 (four points each) for the first and the second image, respectively.
07_vp1.pdf and 07_vp2.pdf. Then show each figure zoomed such that the image is clearly visible and export as 07_vp1_zoom.pdf, 07_vp2_zoom.pdf.
K from three vanishing points. From the four available v.p. pairs (two in each image), select three pairs.
angle (should be acute) in the scene between the square and the rectangle. Use the mean value of four computed angles from four pairs of vanishing points.
K to compute the pose of calibrated camera w.r.t. the black square using P3P. Compute camera centers C1, C2, and rotations R1, R2 (both images). Chose one corner of the square as origin and consider the square sides having the unit length.
07_box_wire1.pdf, 07_box_wire2.pdf.
07_box_wire3.pdf and whole sequence as 07_seq_wire.avi.
07_box_tx.png (bitmap, not figure) and the sequence as 07_seq_tx.avi.
u1, u2, vp1, vp2, K, angle, C1, C2, R1, R2 into 07_data.mat. All points are euclidean column vectors, the (acute) angle is in radians, and K(3, 3) = 1.
Let $R_1$, $C_1$ is the first camera pose and $R_2$, $C_2$ is the second camera pose. Let $\lambda$ be the interpolation parameter taking value from 0 (meaning the first camera) to 1 (meaning the second camera). Then use following
$C = (1-\lambda) C_1 + \lambda C_2$
$R = (R_2 R_1^\top)^\lambda R_1$
Note that we are using matrix power here. Due to numeric accuracy, it is necessary to take only the real part of the result.
| matlab | python |
|---|---|
C = C2 * lambda + C1 * (1 - lambda); | C = C2 * lambda + C1 * (1 - lambda) |