matlab | python |
---|---|
[ K, R, C ] = Q2KRC( Q ) | K, R, C = hw03.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.
Create a function 'plot_csystem' for drawing a coordinate system with base Base
located in the origin b
with a given name
and color
. The base and origin are expressed in the world coordinate system δ. The base consists of a two or three three-dimensional column vectors of coordinates. E.g.
plot_csystem(eye(3),zeros(3,1),'k','\\delta'); | hw03.plot_csystem(ax,np.eye(3),np.zeros([3,1]),'k','d') |
should plot the $\delta$ system. The function should label each base vector (e.g. $\delta_x$, $\delta_y$, $\delta_z$).
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
.
03_figure1.pdf
.
03_figure2.pdf
.
03_figure3.pdf
. Note that the coordinate system ε is for the optimal camera only.
save( '03_bases.mat', 'Pb', 'f', … 'Alpha', 'a', … 'Beta', 'b',… 'Gamma', 'g', … 'Delta', 'd', … 'Epsilon', 'e',… 'Kappa', 'k', … 'Nu', 'n' ); | sio.savemat( '03_bases.mat', { 'Pb':Pb, 'f':f, 'Alpha':Alpha, 'a':a, 'Beta':Beta, 'b':b, 'Gamma':Gamma, 'g':g, 'Delta':Delta, 'd':d, 'Epsilon':Epsilon, 'e':e, 'Kappa':Kappa, 'k':k, 'Nu':Nu, 'n':n } ) |
Upload an archive containing the following files:
matlab | python |
---|---|
03_bases.mat |
|
03_figure1.pdf , 03_figure2.pdf , 03_figure3.pdf |
|
Q2KRC.m , plot_csystem.m | |
hw03.m | hw03.py containing the required functions |
any other file used by your solution |
The input entry point script hw03
should make all required figures, output files and prints without manual intervention.
Note: The required files must be in the root directory of the archive.