| 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 δ system. The function should label each base vector (e.g. δ_x, δ_y, δ_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.