我想验证我对基本矩阵的理解是否正确,以及是否可以在不使用任何相应的点对的情况下计算F.
基本矩阵计算为 F = inv(transpose(Mr))*R*S*inv(Ml)
,其中Mr和M1是右和左内在相机矩阵,R是将右坐标系带到左边的旋转矩阵,S是偏斜对称矩阵
S = 0 -T[3] T[2] where T is the translation vector of the right coordinate system
T[3] 0 -T[1] from the left.
-T[2] T[1] 0
我知道基本矩阵可以用8点算法计算,但我没有任何点对应关系 . 但是,我的两个相机都经过校准,所以我有所有的内在和外在参数 . 根据上面基本矩阵的定义,可以单独用这些参数计算F,对吗?
(我遇到的问题是,根据定义计算基本矩阵似乎是错误的 . 目前,我只想知道上面的理解是否正确 . )
2 回答
如果您具有相对于公共坐标系的每个摄像机的旋转和平移,则可以计算摄像机之间的旋转和平移,然后使用您引用的公式计算基本矩阵 .
更好的方法是将两个摄像机一起校准为单个立体声系统 . 计算机视觉系统工具箱的最新版本(2014a)可以帮助您实现这一目标 . 见this example .
我更喜欢像“多视图几何”第9章中的方程式那样做 . 我在Matlab中验证了这些 . 这是正确的 .
如果你可以得到两个摄像机的内在矩阵和外在矩阵,你可以计算F矩阵,如:
F = [e'] _ x * P'* p ^
(有关详细定义,请参阅“多视图几何”的pp244)