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

时间:2012-04-15 12:16:59

标签: matlab computer-vision projection-matrix perspectivecamera projective-geometry

我使用两个投影矩阵P1和P2(例如我使用dinosaur dataset)并且我需要计算基本矩阵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与我用其他两个函数的两个F不同...

2 个答案:

答案 0 :(得分:2)

嗯,有一件事,很可能这些点不是彼此完美旋转的版本。 SURF使用了许多近似值,双线性插值和一系列破坏真实旋转不变性的东西。所以可能不存在这样一个基本矩阵(如果两组点之间没有线性关系。)是的,即使你进行点匹配也是如此。

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

答案 1 :(得分:2)

基本矩阵仅在达到比例时是唯一的。

因此,即使您有不同的基本矩阵,两者都可以正确显示图像。