基本矩阵、基本矩阵和同构矩阵的区别是什么?

问题描述 投票:29回答:3

我有两张从不同位置拍摄的图像。第二台相机相对于第一台相机的位置是向右、向上和向后。

所以我认为这两个视图之间有一个透视变换,而不仅仅是一个仿射变换,因为摄像机的深度相对不同。. 我说的对吗?

我在两幅图像之间有几个对应点。我想用这些对应点来确定从第1幅图像到第2幅图像的每个像素的变换。

我对这些函数感到困惑 查找基本矩阵findHomography. 两者都返回一个3x3矩阵。两者之间有什么区别?

有什么条件需要先决条件来使用它们吗(何时使用)?

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

维基百科我读到,基本矩阵是对应图像点之间的关系。在一个SO的答案中 此处,据说需要基本矩阵E才能得到相应的点。但是我没有相机内部的矩阵来计算E,我只有两幅图像。

我应该如何继续确定对应点?

opencv transform homography perspectivecamera projective-geometry
3个回答
11
投票

没有任何额外的假设,对世界场景的几何。你不能肯定在这两种观点之间存在着投射性的转换。. 只有在场景是平面的情况下才会如此。关于这个问题,一个很好的参考资料是 计算机视觉中的多视图几何 的Hartley和Zisserman。

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

我假设你使用 "透视变换 "的表达方式是指 "投影变换"。据我所知,透视变换是一种 形象世界 映射,而不是图像到图像的映射。


9
投票

只有两种情况下,两个视图之间的变换是投影变换(即同构):一是场景是平面的,二是两个视图是由摄像机绕其中心旋转生成的。


8
投票

基本矩阵的关系是x'Fu = 0与x在一个图象中,u在另一个图象中,如果x和u是同一个三维点的投影。l = Fu定义了一条线(lx'=0),其中u的对应点必须在上,所以它可以用来限定对应的搜索空间。

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

© www.soinside.com 2019 - 2024. All rights reserved.