估计摄像机投影矩阵和基本矩阵实验报告
使用最小二乘法解空间3D点到图像2D点的投影矩阵
实验目的:
老师题目中给了一个三维空间里面20个点的坐标,分别用两个角度拍摄这个场景,并给出两张照片中这20个点的二维坐标。要求求两张照片对应的投影矩阵。
想要将三维空间点坐标投影到二维平面坐标需要求出对应的投影矩阵,通过投影矩阵与三维坐标矩阵相乘可以得到二维点坐标。而反之如果知道三维空间点坐标和投影后的二维平面点坐标就可以找到其对应的投影矩阵。
实验过程:
首先在MATLAB中读取图像的2D和3D坐标:
clear
close allformatSpec = '%f';
size2d_norm = [2 Inf];
size3d_norm = [3 Inf];file_2d_pic_b = fopen('E:\硕士\计算机视觉\Assignment2\data\pts2d-pic_a.txt','r');
file_3d = fopen('E:\硕士\计算机视觉\Assignment2\data\pts3d.txt','r');
Points_2D = fscanf(file_2d_pic_b,formatSpec,size2d_norm)';
Points_3D = fscanf(file_3d,formatSpec,size3d_norm)';
使用最小二乘法求三维坐标投影到二维的投影公式推导:
[ s u s v s ] = [ m 11 m 12 m 13 m 14 m 21 m 22 m 23 m 24 m 31 m 32 m 33 m 34 ] [ X Y Z 1 ] \begin{bmatrix} su\\ sv\\ s \end{bmatrix}=\begin{bmatrix} m_{11}&m_{12}&m_{13}&m_{14}\\ m_{21}&m_{22}&m_{23}&m_{24}\\ m_{31}&m_{32}&m_{33}&m_{34} \end{bmatrix}\begin{bmatrix} X\\ Y\\ Z\\ 1 \end{bmatrix} ⎣⎡susvs⎦⎤=⎣⎡m11m21m31m12m22m32m13m23m33m14m24m34⎦⎤⎣⎢⎢⎡XYZ1⎦⎥⎥⎤
s u = m 11 X + m 12 Y + m 13 Z + m 14 s v = m 21 X + m 22 Y + m 23 Z + m 24 s = m 31 X + m 32 Y + m 33 Z + m 34 u = m 11 X + m 12 Y + m 13 Z + m 14 m 31 X + m 32 Y + m 33 Z + m 34 v = m 21 X + m 22 Y + m 23 Z + m 24 m 31 X + m 32 Y + m 33 Z + m 34 su=m_{11}X+m_{12}Y+m_{13}Z+m_{14}\\ sv=m_{21}X+m_{22}Y+m_{23}Z+m_{24}\\ s=m_{31}X+m_{32}Y+m_{33}Z+m_{34}\\ \\ u=\frac{m_{11}X+m_{12}Y+m_{13}Z+m_{14}}{m_{31}X+m_{32}Y+m_{33}Z+m_{34}}\\ v=\frac{m_{21}X+m_{22}Y+m_{23}Z+m_{24}}{m_{31}X+m_{32}Y+m_{33}Z+m_{34}}\\ \\ su=m11X+m12Y+m13Z+m14sv=m21X+m22Y+m23Z+m24s=m31X+m32Y+m33Z+m34u=m31X+m32Y+m33Z+m34m11X+m12Y+m13Z+m14v=m31X+m32Y+m33Z+m34m21X+m22Y+m23Z+m24
( m 31 X + m 32 Y + m 33 Z + m 34 ) u = m 11 X + m 12 Y + m 13 Z + m 14 ( m 31 X + m 32 Y + m 33 Z + m 34 ) v = m 21 X + m 22 Y + m 23 Z + m 24 m 31 u X + m 32 u Y + m 33 u Z + m 34 u = m 11 X + m 12 Y + m 13 Z + m 14 m 31 v X + m 32 v Y + m 33 v Z + m 34 v = m 21 X + m 22 Y + m 23 Z + m 24 0 = m 11 X + m 12 Y + m 13 Z + m 14 − m 31 u X − m 32 u Y − m 33 u Z − m 34 u 0 = m 21 X + m 22 Y + m 23 Z + m 24 − m 31 v X − m 32 v Y − m 33 v Z − m 34 v (m_{31}X+m_{32}Y+m_{33}Z+m_{34})u=m_{11}X+m_{12}Y+m_{13}Z+m_{14}\\ (m_{31}X+m_{32}Y+m_{33}Z+m_{34})v=m_{21}X+m_{22}Y+m_{23}Z+m_{24}\\ \\ m_{31}uX+m_{32}uY+m_{33}uZ+m_{34}u=m_{11}X+m_{12}Y+m_{13}Z+m_{14}\\ m_{31}vX+m_{32}vY+m_{33}vZ+m_{34}v=m_{21}X+m_{22}Y+m_{23}Z+m_{24}\\ \\ 0=m_{11}X+m_{12}Y+m_{13}Z+m_{14}-m_{31}uX-m_{32}uY-m_{33}uZ-m_{34}u\\ 0=m_{21}X+m_{22}Y+m_{23}Z+m_{24}-m_{31}vX-m_{32}vY-m_{33}vZ-m_{34}v (m31X+m32Y+m33Z+m34)u=m11X+m12Y+m13Z+m14(m31X+m32Y+m33Z+m34)v=m21X+m22Y+m23Z+m24m31uX+m32uY+m33uZ+m34u=m11X+m12Y+m13Z+m14m31vX+m32vY+m33vZ+m34v=m21X+m22Y+m23Z+m240=m11X+m12Y+m13Z+m14−m31uX−m32uY−m33uZ−m34u0=m21X+m22Y+m23Z+m24−m31vX−m32vY−m33vZ−m34v
考虑系统为非齐次线性方程组,常数项不为0:
m 11 X + m 12 Y + m 13 Z + m 14 − m 31 u X − m 32 u Y − m 33 u Z = m 34 u m 21 X + m 22 Y + m 23 Z + m 24 − m 31 v X − m 32 v Y − m 33 v Z = m 34 v m_{11}X+m_{12}Y+m_{13}Z+m_{14}-m_{31}uX-m_{32}uY-m_{33}uZ=m_{34}u\\ m_{21}X+m_{22}Y+m_{23}Z+m_{24}-m_{31}vX-m_{32}vY-m_{33}vZ=m_{34}v m11X+m12Y+m13Z+m14−m31uX−m32uY−m33uZ=m34um21X+m22Y+m23Z+m24−m31vX−m32vY−m33vZ=m34v
等式右边的系数m34不影响最终结果,所以这里可以将m34的值设为1。将方程整理为矩阵形式:
[ X 1 Y 1 Z 1 1 0 0 0 0 − u 1 Y 1 − u 1 Y 1 − u 1 Z 1 0 0 0 0 X 1 Y 1 Z 1 1 − v 1 Y 1 − v 1 Y 1 − v 1 Z 1 . . . X n Y n Z n 1 0 0 0 0 − u n Y n − u n Y n − u n Z n 0 0 0 0 X n Y n Z n 1 − v n Y n − v n Y n − v n Z n ] [ m 11 m 12 m 13 m 14 m 21 m 22 m 23 m 24 m 31 m 32 m 33 ] = [ u 1 v 1 . . . u n v n ] \begin{bmatrix} X_1&Y_1&Z_1&1&0&0&0&0&-u_1Y_1&-u_1Y_1&-u_1Z_1\\ 0&0&0&0&X_1&Y_1&Z_1&1&-v_1Y_1&-v_1Y_1&-v_1Z_1\\ &&&&&&.\\ &&&&&&.\\ &&&&&&.\\ X_n&Y_n&Z_n&1&0&0&0&0&-u_nY_n&-u_nY_n&-u_nZ_n\\ 0&0&0&0&X_n&Y_n&Z_n&1&-v_nY_n&-v_nY_n&-v_nZ_n \end{bmatrix}\begin{bmatrix} m_{11}\\ m_{12}\\ m_{13}\\ m_{14}\\ m_{21}\\ m_{22}\\ m_{23}\\ m_{24}\\ m_{31}\\ m_{32}\\ m_{33} \end{bmatrix}=\begin{bmatrix} u_1\\ v_1\\ .\\ .\\ .\\ u_n\\ v_n \end{bmatrix} ⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡X10Xn0Y10Yn0Z10Zn010100X10Xn0Y10Yn0Z1...0Zn0101−u1Y1−v1Y1−unYn−vnYn−u1Y1−v1Y1−unYn−vnYn−u1Z1−v1Z1−unZn−vnZn⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡m11m12m13m14m21m22m23m24m31m32m33⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡u1v1...unvn⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤
此时问题就是求解该非齐次线性方程组:
A x = b Ax=b Ax=b
在MATLAB的calcuate文件中求解方程组,并将求解的结果转化为矩阵形式,求得的M即为投影矩阵:
M = A\b;
M = [M;1];
M = reshape(M,[],3)';
得到的结果为:
M = [ − 2.33259098129747 − 0.109993113051944 0.337413915879523 736.673920205946 − 0.231050254183619 − 0.479506029384648 2.08717636190678 153.627755683397 − 0.00126379605778312 − 0.00206770917182951 0.000514635232581790 1 ] M=\begin{bmatrix} -2.33259098129747&-0.109993113051944&0.337413915879523&736.673920205946\\ -0.231050254183619&-0.479506029384648&2.08717636190678&153.627755683397\\ -0.00126379605778312&-0.00206770917182951&0.000514635232581790&1 \end{bmatrix} M=⎣⎡−2.33259098129747−0.231050254183619−0.00126379605778312−0.109993113051944−0.479506029384648−0.002067709171829510.3374139158795232.087176361906780.000514635232581790736.673920205946153.6277556833971⎦⎤
实验结果:
图像a对应的投影矩阵M1为:
M 1 = [ − 2.33259098129747 − 0.109993113051944 0.337413915879523 736.673920205946 − 0.231050254183619 − 0.479506029384648 2.08717636190678 153.627755683397 − 0.00126379605778312 − 0.00206770917182951 0.000514635232581790 1 ] M_1=\begin{bmatrix} -2.33259098129747&-0.109993113051944&0.337413915879523&736.673920205946\\ -0.231050254183619&-0.479506029384648&2.08717636190678&153.627755683397\\ -0.00126379605778312&-0.00206770917182951&0.000514635232581790&1 \end{bmatrix} M1=⎣⎡−2.33259098129747−0.231050254183619−0.00126379605778312−0.109993113051944−0.479506029384648−0.002067709171829510.3374139158795232.087176361906780.000514635232581790736.673920205946153.6277556833971⎦⎤
图像b对应的投影矩阵M2为:
M 2 = [ − 2.04662531866668 1.18743051850851 0.388938200241278 243.732984539506 − 0.456886722410772 − 0.302017127919076 2.14721847547261 165.932475135729 − 0.00224678720499548 − 0.00109380145729559 0.000558547111046076 1 ] M_2=\begin{bmatrix} -2.04662531866668&1.18743051850851&0.388938200241278&243.732984539506\\ -0.456886722410772&-0.302017127919076&2.14721847547261&165.932475135729\\ -0.00224678720499548&-0.00109380145729559&0.000558547111046076&1 \end{bmatrix} M2=⎣⎡−2.04662531866668−0.456886722410772−0.002246787204995481.18743051850851−0.302017127919076−0.001093801457295590.3889382002412782.147218475472610.000558547111046076243.732984539506165.9324751357291⎦⎤
结果分析:
为检验所求投影矩阵是否正确,可以使用投影矩阵与三维空间坐标点相乘得到二维平面矩阵 [ s u , s v , s ] [su,sv,s] [su,sv,s]。
首先检验图像a的投影矩阵M1是否正确。在MATLAB的verification中将3D坐标矩阵最右边加上全为1的一列并将值赋给变量D,然后用求得的投影矩阵M与矩阵D的转置相乘,得到的矩阵命名为E:
D = [312.747000000000 309.140000000000 30.0860000000000 1;
305.796000000000 311.649000000000 30.3560000000000 1;
307.694000000000 312.358000000000 30.4180000000000 1;
310.149000000000 307.186000000000 29.2980000000000 1;
311.937000000000 310.105000000000 29.2160000000000 1;
311.202000000000 307.572000000000 30.6820000000000 1;
307.106000000000 306.876000000000 28.6600000000000 1;
309.317000000000 312.490000000000 30.2300000000000 1;
307.435000000000 310.151000000000 29.3180000000000 1;
308.253000000000 306.300000000000 28.8810000000000 1;
306.650000000000 309.301000000000 28.9050000000000 1;
308.069000000000 306.831000000000 29.1890000000000 1;
309.671000000000 308.834000000000 29.0290000000000 1;
308.255000000000 309.955000000000 29.2670000000000 1;
307.546000000000 308.613000000000 28.9630000000000 1;
311.036000000000 309.206000000000 28.9130000000000 1;
307.518000000000 308.175000000000 29.0690000000000 1;
309.950000000000 311.262000000000 29.9900000000000 1;
312.160000000000 310.772000000000 29.0800000000000 1;
311.988000000000 312.709000000000 30.5140000000000 1];
E = M*D';
求得的矩阵E为:
E = [ − 16.6887473176187 − 0.659778369979904 − 5.14410150685183 − 10.6796315710174 − 15.1990420836781 − 12.7113263563845 − 3.76272942821424 − 9.00784957660574 − 4.66836094965765 − 6.30028677523524 − 2.88313483050308 − 5.82557289161616 − 9.83668607563857 − 6.57673501387308 − 4.87789108084496 − 13.1007302174069 − 4.72863567476850 − 10.4302874647503 − 15.8384635714726 − 15.1664630273000 − 4.07222406140946 − 3.10573675459039 − 3.75483497742637 − 4.17969569280536 − 6.16364010873583 − 1.71942885292421 − 4.65958141911187 − 4.58551349188365 − 4.93261715283837 − 4.18713461175354 − 5.20566641579476 − 3.75638874711973 − 5.42093004908442 − 5.13454117396678 − 4.96173106633606 − 6.15680234695733 − 4.52399732398634 − 4.64385722555516 − 6.81885082223766 − 4.71490245446180 − 0.0189767234554149 − 0.0152410078570877 − 0.0190737911931670 − 0.0120586101388139 − 0.0203961206517722 − 0.0134752679660926 − 0.00790022617009989 − 0.0214946212293559 − 0.0147491326278135 − 0.00804506537900285 − 0.0122120442774548 − 0.00875197282297702 − 0.0150005372159331 − 0.0154064207943787 − 0.0118919727915201 − 0.0175545043337072 − 0.0108963785499872 − 0.0198789697267456 − 0.0221270995818992 − 0.0251768924022721 ] E=\begin{bmatrix} -16.6887473176187& -0.659778369979904& -5.14410150685183& -10.6796315710174& -15.1990420836781& -12.7113263563845& -3.76272942821424& -9.00784957660574& -4.66836094965765& -6.30028677523524& -2.88313483050308& -5.82557289161616& -9.83668607563857& -6.57673501387308& -4.87789108084496& -13.1007302174069& -4.72863567476850& -10.4302874647503& -15.8384635714726& -15.1664630273000\\ -4.07222406140946& -3.10573675459039& -3.75483497742637& -4.17969569280536& -6.16364010873583& -1.71942885292421& -4.65958141911187& -4.58551349188365& -4.93261715283837& -4.18713461175354& -5.20566641579476& -3.75638874711973& -5.42093004908442& -5.13454117396678& -4.96173106633606& -6.15680234695733& -4.52399732398634& -4.64385722555516& -6.81885082223766& -4.71490245446180\\ -0.0189767234554149& -0.0152410078570877& -0.0190737911931670& -0.0120586101388139& -0.0203961206517722& -0.0134752679660926& -0.00790022617009989& -0.0214946212293559& -0.0147491326278135& -0.00804506537900285& -0.0122120442774548& -0.00875197282297702& -0.0150005372159331& -0.0154064207943787& -0.0118919727915201& -0.0175545043337072& -0.0108963785499872& -0.0198789697267456& -0.0221270995818992& -0.0251768924022721& \end{bmatrix} E=⎣⎡−16.6887473176187−4.07222406140946−0.0189767234554149−0.659778369979904−3.10573675459039−0.0152410078570877−5.14410150685183−3.75483497742637−0.0190737911931670−10.6796315710174−4.17969569280536−0.0120586101388139−15.1990420836781−6.16364010873583−0.0203961206517722−12.7113263563845−1.71942885292421−0.0134752679660926−3.76272942821424−4.65958141911187−0.00790022617009989−9.00784957660574−4.58551349188365−0.0214946212293559−4.66836094965765−4.93261715283837−0.0147491326278135−6.30028677523524−4.18713461175354−0.00804506537900285−2.88313483050308−5.20566641579476−0.0122120442774548−5.82557289161616−3.75638874711973−0.00875197282297702−9.83668607563857−5.42093004908442−0.0150005372159331−6.57673501387308−5.13454117396678−0.0154064207943787−4.87789108084496−4.96173106633606−0.0118919727915201−13.1007302174069−6.15680234695733−0.0175545043337072−4.72863567476850−4.52399732398634−0.0108963785499872−10.4302874647503−4.64385722555516−0.0198789697267456−15.8384635714726−6.81885082223766−0.0221270995818992−15.1664630273000−4.71490245446180−0.0251768924022721⎦⎤
将矩阵中的数据转化为数组,并提取其中的数据放到Excel中:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
su | -16.6887473176187 | -0.659778369979904 | -5.14410150685183 | -10.6796315710174 | -15.1990420836781 | -12.7113263563845 | -3.76272942821424 | -9.00784957660574 | -4.66836094965765 | -6.30028677523524 | -2.88313483050308 | -5.82557289161616 | -9.83668607563857 | -6.57673501387308 | -4.87789108084496 | -13.1007302174069 | -4.72863567476850 | -10.4302874647503 | -15.8384635714726 | -15.1664630273000 |
sv | -4.07222406140946 | -3.10573675459039 | -3.75483497742637 | -4.17969569280536 | -6.16364010873583 | -1.71942885292421 | -4.65958141911187 | -4.58551349188365 | -4.93261715283837 | -4.18713461175354 | -5.20566641579476 | -3.75638874711973 | -5.42093004908442 | -5.13454117396678 | -4.96173106633606 | -6.15680234695733 | -4.52399732398634 | -4.64385722555516 | -6.81885082223766 | -4.71490245446180 |
s | -0.0189767234554149 | -0.0152410078570877 | -0.0190737911931670 | -0.0120586101388139 | -0.0203961206517722 | -0.0134752679660926 | -0.00790022617009989 | -0.0214946212293559 | -0.0147491326278135 | -0.00804506537900285 | -0.0122120442774548 | -0.00875197282297702 | -0.0150005372159331 | -0.0154064207943787 | -0.0118919727915201 | -0.0175545043337072 | -0.0108963785499872 | -0.0198789697267456 | -0.0221270995818992 | -0.0251768924022721 |
在Excel中将矩阵E的第一行数据su和第二行数据sv分别除以第三行s求得二维图像坐标 [ u , v ] [u,v] [u,v]:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
u | 879.4325 | 43.28968 | 269.6948 | 885.6437 | 745.1928 | 943.3079 | 476.2812 | 419.0746 | 316.5177 | 783.1244 | 236.0895 | 665.6297 | 655.7556 | 426.8827 | 410.1835 | 746.2888 | 433.964 | 524.6895 | 715.7948 | 602.3961 |
v | 214.5905 | 203.775 | 196.8583 | 346.615 | 302.1967 | 127.5989 | 589.8035 | 213.3331 | 334.4344 | 520.46 | 426.2731 | 429.2048 | 361.3824 | 333.2728 | 417.2336 | 350.7249 | 415.1836 | 233.6065 | 308.1674 | 187.271 |
而题中所给的图a中原二维平面坐标 [ u , v ] [u,v] [u,v]为:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
u | 880 | 43 | 270 | 886 | 745 | 943 | 476 | 419 | 317 | 783 | 235 | 665 | 655 | 427 | 412 | 746 | 434 | 525 | 716 | 602 |
v | 214 | 203 | 197 | 347 | 302 | 128 | 590 | 214 | 335 | 521 | 427 | 429 | 362 | 333 | 415 | 351 | 415 | 234 | 308 | 187 |
将坐标与原二维平面坐标做对比,误差较小,可知计算出的投影矩阵M1正确,所使用方法无误且数据正确。
接下来使用同样的方法检验图像b的投影矩阵M2是否正确:
首先也是求得对应的矩阵E:
E = [ − 17.5590788133619 − 0.248709738306957 − 3.26720218709886 − 14.8686687704218 − 15.0938180890912 − 16.0271265816996 − 9.25703395821051 − 6.50525463249699 − 5.78561740417763 − 12.2025178351287 − 5.34896394645625 − 11.0756202054919 − 12.0381207494619 − 7.71642239532446 − 7.97713401310159 − 14.4351569877847 − 8.39869562205990 − 9.35227830399947 − 14.8110949745414 − 11.6012851262338 − 5.72183650990732 − 2.72402888800136 − 3.67220248535237 − 5.63671149580264 − 7.51128486685765 − 3.26264145582385 − 5.52270527720329 − 4.85727297009922 − 5.24925734595043 − 5.39825719904761 − 5.52068794049694 − 4.81321784660351 − 6.49364563920307 − 5.67421724350423 − 5.59773198819127 − 7.47872373003449 − 5.22505049953509 − 5.29093766641400 − 8.10663774294156 − 5.53394910963843 − 0.0240092921261503 − 0.0109854144005990 − 0.0159906918280182 − 0.0164749860435208 − 0.0237308488830045 − 0.0184900311312094 − 0.00965528718380537 − 0.0198866161109655 − 0.0136091559478236 − 0.0114788835569917 − 0.0111463767100629 − 0.0114742507748944 − 0.0173538557340275 − 0.0152656222729534 − 0.0123745669106787 − 0.0208924058758417 − 0.0117733658368726 − 0.0200996955288196 − 0.0250374104088368 − 0.0259686998751191 ] E=\begin{bmatrix} -17.5590788133619& -0.248709738306957& -3.26720218709886& -14.8686687704218& -15.0938180890912& -16.0271265816996& -9.25703395821051& -6.50525463249699& -5.78561740417763& -12.2025178351287& -5.34896394645625& -11.0756202054919& -12.0381207494619& -7.71642239532446& -7.97713401310159& -14.4351569877847& -8.39869562205990& -9.35227830399947& -14.8110949745414& -11.6012851262338\\ -5.72183650990732& -2.72402888800136& -3.67220248535237& -5.63671149580264& -7.51128486685765& -3.26264145582385& -5.52270527720329& -4.85727297009922& -5.24925734595043& -5.39825719904761& -5.52068794049694& -4.81321784660351& -6.49364563920307& -5.67421724350423& -5.59773198819127& -7.47872373003449& -5.22505049953509& -5.29093766641400& -8.10663774294156& -5.53394910963843\\ -0.0240092921261503& -0.0109854144005990& -0.0159906918280182& -0.0164749860435208& -0.0237308488830045 &-0.0184900311312094& -0.00965528718380537& -0.0198866161109655& -0.0136091559478236& -0.0114788835569917& -0.0111463767100629& -0.0114742507748944& -0.0173538557340275& -0.0152656222729534& -0.0123745669106787& -0.0208924058758417& -0.0117733658368726& -0.0200996955288196& -0.0250374104088368& -0.0259686998751191 \end{bmatrix} E=⎣⎡−17.5590788133619−5.72183650990732−0.0240092921261503−0.248709738306957−2.72402888800136−0.0109854144005990−3.26720218709886−3.67220248535237−0.0159906918280182−14.8686687704218−5.63671149580264−0.0164749860435208−15.0938180890912−7.51128486685765−0.0237308488830045−16.0271265816996−3.26264145582385−0.0184900311312094−9.25703395821051−5.52270527720329−0.00965528718380537−6.50525463249699−4.85727297009922−0.0198866161109655−5.78561740417763−5.24925734595043−0.0136091559478236−12.2025178351287−5.39825719904761−0.0114788835569917−5.34896394645625−5.52068794049694−0.0111463767100629−11.0756202054919−4.81321784660351−0.0114742507748944−12.0381207494619−6.49364563920307−0.0173538557340275−7.71642239532446−5.67421724350423−0.0152656222729534−7.97713401310159−5.59773198819127−0.0123745669106787−14.4351569877847−7.47872373003449−0.0208924058758417−8.39869562205990−5.22505049953509−0.0117733658368726−9.35227830399947−5.29093766641400−0.0200996955288196−14.8110949745414−8.10663774294156−0.0250374104088368−11.6012851262338−5.53394910963843−0.0259686998751191⎦⎤
将矩阵中的数据转化为数组,并提取其中的数据放到Excel中:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
su | -17.5590788133619 | -0.248709738306957 | -3.26720218709886 | -14.8686687704218 | -15.0938180890912 | -16.0271265816996 | -9.25703395821051 | -6.50525463249699 | -5.78561740417763 | -12.2025178351287 | -5.34896394645625 | -11.0756202054919 | -12.0381207494619 | -7.71642239532446 | -7.97713401310159 | -14.4351569877847 | -8.39869562205990 | -9.35227830399947 | -14.8110949745414 | -11.6012851262338 |
sv | -5.72183650990732 | -2.72402888800136 | -3.67220248535237 | -5.63671149580264 | -7.51128486685765 | -3.26264145582385 | -5.52270527720329 | -4.85727297009922 | -5.24925734595043 | -5.39825719904761 | -5.52068794049694 | -4.81321784660351 | -6.49364563920307 | -5.67421724350423 | -5.59773198819127 | -7.47872373003449 | -5.22505049953509 | -5.29093766641400 | -8.10663774294156 | -5.53394910963843 |
s | -0.0240092921261503 | -0.0109854144005990 | -0.0159906918280182 | -0.0164749860435208 | -0.0237308488830045 | -0.0184900311312094 | -0.00965528718380537 | -0.0198866161109655 | -0.0136091559478236 | -0.0114788835569917 | -0.0111463767100629 | -0.0114742507748944 | -0.0173538557340275 | -0.0152656222729534 | -0.0123745669106787 | -0.0208924058758417 | -0.0117733658368726 | -0.0200996955288196 | -0.0250374104088368 | -0.0259686998751191 |
在Excel中将矩阵E的第一行数据su和第二行数据sv分别除以第三行s求得图像b的二维图像坐标 [ u , v ] [u,v] [u,v]:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
u | 731.3451 | 22.64 | 204.319 | 902.4996 | 636.0421 | 866.7982 | 958.7528 | 327.1172 | 425.1268 | 1063.04 | 479.8837 | 965.2587 | 693.6857 | 505.4771 | 644.6395 | 690.9284 | 713.364 | 465.2945 | 591.5586 | 446.7411 |
v | 238.3176 | 247.9678 | 229.6463 | 342.1376 | 316.5199 | 176.4541 | 571.9877 | 244.2483 | 385.7151 | 470.2772 | 495.2899 | 419.4799 | 374.1904 | 371.699 | 452.3578 | 357.9637 | 443.8026 | 263.2347 | 323.781 | 213.1007 |
而题中所给的图b中原二维平面坐标 [ u , v ] [u,v] [u,v]为:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
u | 731 | 22 | 204 | 903 | 635 | 867 | 958 | 328 | 426 | 1064 | 480 | 964 | 695 | 505 | 645 | 692 | 712 | 465 | 591 | 447 |
v | 238 | 248 | 230 | 342 | 316 | 177 | 572 | 244 | 386 | 470 | 495 | 419 | 374 | 372 | 452 | 359 | 444 | 263 | 324 | 213 |
将坐标与原二维平面坐标做对比,误差较小,可知计算出的投影矩阵M2正确,所使用方法无误且数据正确。
发布评论