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

5
我使用两个投影矩阵P1和P2(例如我正在使用dinosaur dataset),需要计算基础矩阵F。因此,我使用了两个Matlab函数: 这些函数应该做同样的事情,但是我得到了不同的F值!这怎么可能?哪个函数是正确的?
如果两个点X1和X2在两个不同的图像中“相同”,则X2^TFX1 = 0 ...所以我使用SURF从两个旋转的图像(5度)中找到了两个对应的点,但是使用这两个函数时,X2^TFX1永远不等于零。有什么想法吗?
相反,如果我使用此功能从匹配的点计算F: 我发现X2^TFX1 = 0 ....显然,F与其他两个函数得到的F不同...

我确信Peter Kovesi的函数是正确的,它能够正常运行! - Roberto Iacono
2个回答

2

基础矩阵仅具有“相对尺度”的唯一性。

因此,即使您拥有不同的基础矩阵,两者都可以正确地用于您的图像。


2
一方面,很可能这些点并不是完美旋转的版本。SURF使用了许多近似、双线性插值和一系列破坏真正旋转不变性的技术。因此,如果两组点之间不存在线性关系,可能就不存在这样的基本矩阵。即使进行了点匹配,这也是正确的。
话虽如此,如果匹配真的很好,你的X2^T*F*X1应该很小,但我会惊讶地发现它在任何实际图像中都是完全为零。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接