矩阵F表示了第一帧的像素点p与第二帧的像素点q极线之间的映射关系。如何得到F和E,有以下两种方法:
方法一:
这里需要引用两个点的齐次坐标叉乘能够表达一条直线l的系数。可以对其进行证明(两点的叉乘表达一条直线),直线的方程可以表示为
,所以该直线可以用向量
进行表示。e2是光心O1在第二帧上的投影,假设光心O1的齐次坐标为
,转到光心O2的坐标为
,将O2投影到相机平面,则e2的坐标为
,q的齐次坐标为
。又因为
所以直线qe2可以表示为
,由于这里p和q的坐标都用齐次坐标表示,那么(这里的"="是在相差尺度系数的情况下成立的):
设
和
是归一化平面的坐标,所以:
,
(1)
所以
,又因为q在直线上,那么
,
由于K是3*3的矩阵,[R|t]是4*4的矩阵,将K进行扩展第4行第4列为1之外,第四列的其他值均为0,所以对于[R|t]来说,t的值已经对结果没有影响了,所以上式就变成
,将
代入,得:
又有
,所以
且
。
方法二:
将(1)式叉乘t,可以得到:
,再将其乘以
,由于
是一个与t和x2都垂直的向量,所以左边为0,有;
,代入p,q,得
,综上所述:
,

基本矩阵F的求解

由于
,F的秩为2(原因是因为
的秩为2),自由度为7(尺度等价性),使用直接线性变换8点法来进行计算。具体推导出来的就不写了,直接得出
,A是一个8*9的矩阵,
就是将F矩阵展开的向量。
A中的一行为:
,一共需要8组匹配点
为:
计算过程:
(1)构造得到
;
(2)对A进行SVD分解。