基本,基本和同构矩阵之间的区别

时间:2013-04-18 16:25:03

标签: opencv transform homography perspectivecamera projective-geometry

我有两张从不同位置拍摄的照片。第二个摄像头位于右侧,相对于第一个摄像头向上和向后。 所以我认为两个视图之间存在视角转换而不仅仅是仿射变换,因为相机处于相对不同的深度我是对的?)我有一些两个图像之间的对应点。我想使用这些对应点来确定每个像素从第1个到第2个图像的变换。

我对函数findFundamentalMatfindHomography .... 感到困惑,两者都返回3x3矩阵,两者之间有什么区别?

是否需要使用条件/使用它们的先决条件(何时使用它们)?

使用哪一个将点从第一张图像转换为第二张图像?在函数返回的3x3矩阵中,它们是否包括两个图像帧之间的旋转和平移?

wikipedia开始,我们知道基本矩阵是相应图像点之间的关系。在SO答案here中,据说Essential Matrix E需要获得相应的点...但我没有内部的Camera矩阵来计算E ......我只有两张图像。

我应该如何确定相应的点?等待建议.. 谢谢

3 个答案:

答案 0 :(得分:12)

在世界场景几何上没有任何额外假设,你不能肯定两个观点之间存在投射变换。仅当场景是平面时才这样。关于该主题的一个很好的参考是Hartley和Zisserman的书Multiple View Geometry in Computer Vision

如果世界场景不是平面的,则绝对不应使用findHomography函数。您可以使用findFundamentalMat函数,它将为您提供基本矩阵F的估计。此矩阵描述两个视图之间的极线几何。您可以使用F来校正图像,以便应用立体算法来确定密集的对应图。

我假设你使用“透视变换”这个词来表示“投射变换”。据我所知,透视变换是世界到图像映射,而不是图像到图像的映射。

答案 1 :(得分:8)

基本矩阵具有这种关系 x'Fu = 0 在一个图像中使用x而在另一个图像中使用u,而如果x和u是同一3d点的投影。 也 l = Fu 定义一条线( lx'= 0 ),其中u的相应点必须打开,因此可以用来限制搜索空间的对应关系。

Homography将平面的一个投影上的点映射到平面的另一个投影。 x =胡

答案 2 :(得分:8)

只有两种情况,两个视图之间的转换是投影转换(即单应性):场景是平面的,或者两个视图是由围绕其中心旋转的相机生成的。

相关问题