首页 > 解决方案 > 从单应矩阵计算基本矩阵

问题描述

在我的 Python / OpenCV 代码中,我使用随机单应性来模拟视点变化(我正在评估兴趣点检测器并希望避免搜索图像对)。

是否可以计算一张图像与其扭曲版本之间的极线和基本矩阵?我拥有的唯一信息是我应用的单应性。

还有其他一些与我的问题有关的帖子:如何从单应性计算旋转和平移矩阵?,如何从单应性计算旋转和平移矩阵?从 Fundamental matrix 中找到 Homography atrix,但我不知道如何做 Homography matrix -> Essential matrix。

如果我试图做的事情没有意义,请告诉我为什么。

谢谢

标签: pythonopencvhomography

解决方案


您认为您可以以这种方式为立体声生成图像对的假设是有缺陷的。

您需要两个具有不同投影中心的图像(即相机必须移动)。

应用于现有图像的 2D 单应性不会改变投影中心。您可以模拟围绕相机中心的 3D 旋转,而不是平移。

直观地说,要定义对极几何,您需要一个基线。基线穿过两个相机中心。如果您有两个具有相同相机中心的图像,则未定义基线。您不会从此类图像中获得视差或深度信息。您的设置中既没有定义基本矩阵也没有定义基本矩阵。

要在数学上看到这一点,请考虑图像的投影矩阵 P 的一维零空间在齐次坐标中给出相机中心 C

C=null(P)

P*C = 0

现在对于扭曲的图像,你仍然有

H*P*C = H*0 = 0

同一个相机中心。


推荐阅读