****????????uuuu3214****E??*?,D??*?,A??*?,C??*?通过式(9)可以得到如下关系:
?????v2???v1???v4???v3????f?u??C??f2?S??C??f?v??S??S??11?x1????y???f?u??S??f2?C??C??f?v??C??S???t ; (10)
11?1???1???z1???f2?S??f?v1??C?????f?u??C??f2?S??C??f?v??S??S??22?x1?L????y???f?u??S??f2?C??C??f?v??C??S???t; (11)
22?1???2???z1???f2?S??f?v2??C?????f?u??C??f2?S??C??f?v??S??S??33?x1????y?L???f?u??S??f2?C??C??f?v??C??S???t; (12)
33?1???3???z1???f2?S??f?v3??C?????f?u??C??f2?S??C??f?v??S??S??44?x1?L????y?L???f?u??S??f2?C??C??f?v??C??S???t; (13)
44?1???4???z1???f2?S??f?v4??C???*?u???C??S???u?式中: ???????*?. ?vS?C??????v?在这里将利用式(10)、(11)、(12)和(13),求出旋转角度?和?。由以上四式可以看出ti,ui*,vi*?1?i?5?都是未知的,只有各点在物体坐标系下的坐标是已知的。
通过观察式(10)和(12)以及式(11)和(13)有相同的x坐标和z坐标。所以由式(10)和(12)消去t1和t3,通过化简得到如下关系:
C??S??f?u1??u3??S??f?v1??v3??C??C??u1?v3??u3?v1??0 (14) 同理,由式(11)和(13)消去t2和t4通过化简得到如下关系:
??????C??S??f?u2??u4??S??f?v2??v4??C??C??u2?v4??u4?v2??0 (15) 将式( 14 )乘以?v2??v4??,式( 15 )乘以?v1??v3??,两式相减得:
????C??S??f??u1??u3?v2??v4??u2??u4?v1??v3??????? (16)
C?C??u1?v3??u3?v1?v2??v4??u2?v4??u4?v2?v1??v3???0????将式(16)除以C?,得到?的解为:
??????????????????????????v1?v2??v4??u2?v4??u4?v2?v1??v3??uv?u133????arctan?? (17)
???fu1??u3?v2??v4??u2??u4?v1??v3????????根据实际测量的情况,可以定义?的范围为?90?~90?。
????????????????- 6 -
将式( 14 )乘以?u2??u4??,式( 15 )乘以?u1??u3??,两式相减得:
????S?f?u2??u4?v1??v3??u1??u3?v2??v4??????? (18)
C?C??u1?v3??u3?v1?v2??v4??u2?v4??u4?v2?v1??v3???0????通过(18)可以得到?的解为:
??v3??u3?v1?v2??v4??u2?v4??u4?v2?v1??v3??u1?C?? ??arctan??? (19)
f????u1??u3?v2??v4??u2??u4?v1??v3???????只要知道了?,就可以得到?。同样,可以定义?的范围为?90?~90?。
通过式(17)和(19)可以看出,只要知道了?,那么?和?就可以求出来。现在的关键就是首先求出?。通过观察式(10)和(11)以及式(12)和(13)有相同的y坐标和z坐标。利用相同的方法,由式(10)和(11)可得:
????????????????????????????????S??S??f?u1??u2??C??f?v1??v2??S??C??u1?v2??u2?v1??0 (20) 由式(12)和(13)可得:
??????S??S??f?u3??u4??C??f?v3??v4??S??C??u3?v4??u4?v3??0 (21) 将式( 20 )乘以?z3??z4??,式( 21 )乘以?z1??z2??,两式相减可以得到?的另一独立
????的解法:
??????????????uv?uvv?v?uv?uvv?v2134344312??12??arctan?? (22)
?f?u1??u2?v3??v4??u3??u4?v1??v2?????????由式(17)和(22)关于?的两个独立的解法,可以得到:
????????????????421???????u?v??u?v???v??v????u?v??u?v???v??v???f??u??u???v??v????u??u???v??v??????? (23)
?u?v??u?v???v??v????u?v??u?v???v??v??f??u??u???v??v????u??u???v??v???????1331242413132424312213434431212343412*?u???C??S???u?在式(23)中,唯一的未知量是?,将???????*?代入式(23),就可以求?vS?C??????v?出?。
因为:
********u1?v3??u3?v1???u1C??v1S???u3S??v3C????u3C??v3S???u1S??v1C??
****2****2****??u1v3?u3v1?*C??(u1v3?u3v1)S??u1v3?u3v1同理:
- 7 -
****u1?v2??u2?v1??u1v2?u2v1****u2?v4??u4?v2??u2v4?u4v2
****u3?v4??u4?v3??u3v4?u4v3
则式(23)变为:
************???u2?S??v1S?v?v?C?v?vv?uv?v?C?v?v?u1*v3*?u3*v1*???????????2424424313?????********f?u?uv?v?u?uv?v?????????13242413???uv**12????uv???S??v?v??C??v?v????uv?uv??S??v?v??C??v?v??********f?u?uv?v?u?uv?v?????????12343412??**21*3*4*3*4**34**34*1*2*1*2(24)
由式(24)可以得到?的解为:
??arctan**?A?v1?v3??B?v2*?v4*??C?v1*?v2*??D?v3*?v4*?A?u?u??B?u?u??C?u?u??D?u?u*1*3*2*4*1*2*3*4? , (25)
式中:****************A??u2v4?u4v2?E;B??u1v4?u4v3?F;D??u1v2?u2v1?F; v3?u3v1?E;C??u3********?E?f??u?uv?v?u?uv?v???????13242413??; ?********?F?f?u?uv?v?u?uv?v???????2343412??. ?1这样通过式(25)可以求解出?,然后再通过式(17)和(19)可以求解出?和?。定义?的范围为?90?~90?.
为求出?,我们要找到数据ui*,vi*?1?i?5?,为此从靶标的像图中近似求
把靶标的像经过处理加上网格线(如图3所示),并算得靶标上各圆ui*,vi*?1?i?5?。
的圆心的像坐标如下:
A(-49.7857,51.65559),B(-24.5423,49.31824),C(33.89168,45.57846), D(18.23139,-30.6194),E(-60.3038,-30.3856) (单位:mm) 。 把上面A,B,C,D,E五个点中每四个点的坐标代入公式(17),(19),(25),利用Matlab求解[2],在计算时把焦距近似的等于已知的像距,由此可得五组??,?,??的值,最后求其平均值得到??,?,?????4.36?7.60?8.49??。
[1]- 8 -
图3 像平面网格图
3、问题(3)的解决:
M0
M0?
M1
M1? M2
M2? 像 坐 标
??? 图4像点往复循环原理图
物 坐 标
- 9 -
为了讨论模型的精度和稳定性:我们设计如下一个方法(如图3):在物体平面内任意选取一点M0?x0,y0,z0?,利用问题(1),(2)中所建立的模型,算得M0在像平面上对应的点M0?x0?,y0?,z0?,再利用模型找到M0?点在物平面上对应的点M1?x1,y1,z1?, 依次下去。
循环到第N次,得到点MN?xN,yN,zN?,然后用MN与M0两点间的距离来测量模型的精度,用往复循环的次数来衡量模型的稳定性。
显然,当N越大、MNM0越小时,则精度越高,稳定性越好;反之,N越小,MNM0越大时,则精度越低,稳定性越差。
从点Mn?xn,yn,zn? ?0?n?N?1?对应到像平面上的坐标Mn?xn?,yn?时。 由式(4)和(5)有: ?x???cos?sin???u???n??????v?? ?sin?cos??????yn????xncos??ynsin?式中:u??f?,
xncos?sin??yncos?cos??znsin?xsin?sin??ynsin?cos??zncos?, v??f?nxncos?sin??yncos?cos??znsin?从像平面上的点Mn?xn?,yn?,对应到物平面上的点Mn?1?xn?1,yn?1,zn?1?时,根据物体坐标的建立方式可知:物平面上的点在物体坐标系下的坐标中zn?1?0,由公式(4)和(5)可得:
f??xn?1cos??yn?1sin?????x???cos?sin???xcos?sin??ycos?cos??n?1n?1? , (26) ?n???????sin?cos???f??xn?1sin?cos??yn?1sin?cos?????yn????????xn?1cos?sin??yn?1cos?cos???对于上述公式中xn?,yn?,?,?,?已知,所以对于上式隐式方程中xn?1与yn?1是可解的,只须
??????用Matlab实现循环计算。
不妨取物平面上的点(25,50)进行计算,其结果如下: 1 2 3 4 M?x,y,z? (25,50,O) (24.41,48.74,0) (23.76,47.16,0) (20.82,44.58,0) M?x?,y? (-37.36,14.01) (-38.50,13.64) (-39.41,13.28) (-40.87,12.14) ??循环次数 单位:mm
4. 问题(4)的解决
如前面问题(2)中建立两部相机的相机坐标系:C0?XcYcZc,Cc??Xc?Yc?Zc?,同样建立物体坐标系O0?X0Y0Z0(如图4)。
- 10 -