[ K R C ] = Q2KRC( Q );
Create a function Q2KRC for decomposing a camera matrix Q (3×4) into into the projection centre C (3×1), rotation matrix R (3×3) and upper triangular matrix K (3×3) such that
Q = λ ( K R | - K R C )
where K(3,3) = 1, K(1,1) > 0, and det(R) = 1.
plot_csystem( Base, b, color, name );
Create a function for drawing a coordinate system base Base located in the system origin b. The base and origin is expressed in the world coordinate system δ. The base consists of a three or two three-dimensional column vectors. E.g.
plot_csystem( eye(3), zeros(3,1), 'k', '\\delta'' )should plot the δ system. The function should label each base vector (e.g. δ_x, δ_y, δ_z). The
text function can be used, e.g.
text( x, y, z, [ name '_x' ], 'color', color )
(here x,y,z are coordinates of the end of the first base vector (base x-axis), name and color are the input arguments). Note that Matlab can plot greek numbers using TeX sequences ( '\\alpha', '\\beta', etc.).
Q you have recovered in HW-02. Let the horizontal pixel size be 5 μm. Compute f (in metres) and compose matrix Pb (Pβ) using K, R, C, and f.
Alpha, Beta, Gamma, Delta, Epsilon, Kappa, Nu, respectively, the coordinate system centres should be stored in matrices a, b, g, d, e, k, n, respectively.
Pb, f, all bases and coordinate system centres into 03_bases.mat.save( 'bases.mat', 'Pb', 'f', 'Alpha', 'a', 'Beta', 'b', 'Gamma', 'g', ...
'Delta', 'd', 'Epsilon', 'e', 'Kappa', 'k', 'Nu', 'n', '-v6' );
03_figure1.pdf.
03_figure2.pdf.
03_figure3.pdf. Note that the coordinate system ε is for the optimal camera only.
Upload an archive containing the following files:
03_bases.mat
03_figure1.pdf, 03_figure2.pdf, 03_figure3.pdf
Q2KRC.m, plot_csystem.m
hw03.m – your Matlab implementation entry point; it makes all required figures, output files and prints.
Note: The required files must be in the root directory of the archive.