来自相同投影矩阵的不同基本矩阵

Rob*_*ono 5 matlab computer-vision perspectivecamera projective-geometry projection-matrix

我使用两个投影矩阵P1和P2(例如我使用恐龙数据集),我需要计算基本矩阵F.所以我使用两个Matlab函数:

  • Peter Kovesi的职责:www.csse.uwa.edu.au/~pk/Research/MatlabFns/Projective/fundfromcameras.m
  • Zisserman:www.robots.ox.ac.uk/~vgg/hzbook/code/vgg_multiview/vgg_F_from_P.m

这些函数应该做同样的事情,但我有一个不同的F值!怎么可能?哪个是正确的功能?

如果在两个不同的图像中两个点X1和X2"相同",则X2 ^ T*F*X1 = 0 ...因此我通过使用SURF从两个旋转图像(5度)找到两个对应点,但是X2 ^ T*这两个版本的F*X1永远不会等于零.有任何想法吗?

相反,如果我使用此函数从匹配点计算F:

我有X2 ^ T*F*X1 = 0 ....显然F不同于两个FI与其他两个功能...

Chr*_* A. 2

一方面,这些点极有可能不是彼此的完美旋转版本。SURF 使用了大量的近似、双线性插值和一系列破坏真正旋转不变性的东西。因此,可能不存在这样的基本矩阵(如果两组点之间不存在线性关系)。是的,即使在进行点匹配之后也是如此。

也就是说,X2^T*F*X1如果匹配真的很好,你的值可能应该很小,但如果对于任何真实图像来说它恰好为零,我会感到惊讶。