[ 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.