python - 从单应矩阵计算基本矩阵
问题描述
在我的 Python / OpenCV 代码中,我使用随机单应性来模拟视点变化(我正在评估兴趣点检测器并希望避免搜索图像对)。
是否可以计算一张图像与其扭曲版本之间的极线和基本矩阵?我拥有的唯一信息是我应用的单应性。
还有其他一些与我的问题有关的帖子:如何从单应性计算旋转和平移矩阵?,如何从单应性计算旋转和平移矩阵?,从 Fundamental matrix 中找到 Homography atrix,但我不知道如何做 Homography matrix -> Essential matrix。
如果我试图做的事情没有意义,请告诉我为什么。
谢谢
解决方案
您认为您可以以这种方式为立体声生成图像对的假设是有缺陷的。
您需要两个具有不同投影中心的图像(即相机必须移动)。
应用于现有图像的 2D 单应性不会改变投影中心。您可以模拟围绕相机中心的 3D 旋转,而不是平移。
直观地说,要定义对极几何,您需要一个基线。基线穿过两个相机中心。如果您有两个具有相同相机中心的图像,则未定义基线。您不会从此类图像中获得视差或深度信息。您的设置中既没有定义基本矩阵也没有定义基本矩阵。
要在数学上看到这一点,请考虑图像的投影矩阵 P 的一维零空间在齐次坐标中给出相机中心 C
C=null(P)
和
P*C = 0
现在对于扭曲的图像,你仍然有
H*P*C = H*0 = 0
同一个相机中心。
推荐阅读
- javascript - Shopify:修改后购物车中的变体不正确
- excel - 在 Excel 中展开列表中的每个项目,并在第二个和第三个列表中包含所有变体
- unity3d - MapBox地图空间位置到longlat Unity3D
- selenium - 无法找到网页元素
- google-oauth - 无法在开发者控制台中创建凭据
- etl - 文件路径中的正则表达式
- bash - 需要帮助理解为什么 grep 中的这个字符串会提取 IP 地址而不是其他字符串
- c# - C# WPF - 在网格之间切换
- jquery - 包含函数返回明显错误的 false
- bootstrap-4.1.x - 移动设备上的引导网格