计算没有点对应的基本矩阵?

时间:2014-07-16 14:50:45

标签: opencv matrix computer-vision matlab-cvst 3d-reconstruction

我想验证我对基本矩阵的理解是否正确,以及是否可以在不使用任何对应点对的情况下计算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 个答案:

答案 0 :(得分:0)

如果您有相对于公共坐标系的每个摄像机的旋转和平移,则可以计算摄像机之间的旋转和平移,然后使用您引用的公式计算基本矩阵。

更好的方法是将两个摄像机一起校准为单个立体声系统。计算机视觉系统工具箱的最新版本(2014a)可以帮助您实现这一目标。请参阅this example

答案 1 :(得分:0)

我更喜欢像“多视图几何”第9章中的公式那样做。我在Matlab中验证了这些。没错。

如果你可以同时获得两个相机的内在和外在矩阵,你可以计算F矩阵,如:

F = [e'] _ x * P'* p ^ +

(详细定义请参阅“多视图几何”第224页)