我使用两个投影矩阵 P1 和 P2 (例如我使用恐龙数据集 http://www.robots.ox.ac.uk/%7Evgg/data1.html)并且我需要计算基本矩阵 F。
所以我使用两个Matlab函数:
- 彼得·科维西的函数:www.csse.uwa.edu.au/~pk/Research/MatlabFns/Projective/fundfromcameras.m http://www.csse.uwa.edu.au/%7Epk/Research/MatlabFns/Projective/fundfromcameras.m
- 齐瑟曼:www.robots.ox.ac.uk/~vgg/hzbook/code/vgg_multiview/vgg_F_from_P.m http://www.robots.ox.ac.uk/%7Evgg/hzbook/code/vgg_multiview/vgg_F_from_P.m
这些函数应该做同样的事情,但是我有不同的 F 值!怎么可能?哪些是正确的功能?
如果两个点 X1 和 X2 在两个不同图像中“相同”,则 X2^TFX1 = 0 ...
所以我通过使用SURF从两个旋转图像(5度)中找到了两个对应点,但是X2^TF对于这两个函数,X1 永远不会等于零。
有任何想法吗?
相反,如果我使用这个函数从匹配点计算 F:
- Peter Kovesi 的 ransac 拟合基本矩阵:ransacfitfundmatrix.m https://web.archive.org/web/20150626155116/http://www.csse.uwa.edu.au/%7Epk/Research/MatlabFns/Robust/ransacfitfundmatrix.m
我有那个 X2^TFX1 = 0 ....显然 F 与我在其他两个函数中使用的两个 F 不同...
一方面,这些点极有可能不是彼此的完美旋转版本。 SURF 使用了大量的近似、双线性插值和一系列破坏真正旋转不变性的东西。因此,可能不存在这样的基本矩阵(如果两组点之间不存在线性关系)。是的,即使在进行点匹配之后也是如此。
也就是说,你的X2^T*F*X1
如果匹配真的很好,它可能应该很小,但如果对于任何真实图像来说它恰好为零,我会感到惊讶。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)