opencvstereoRectify-立体声摄像机

时间:2019-11-02 07:15:24

标签: opencv

我正在尝试从立体声入手。我有两个实时摄像头,它们都是“校准”的。我知道相机的本征和失真系数,而且我知道从L到R会转换T&R。

下一步-我想将这些实时纹理放入VR耳机场景中。我需要它们准确地在场景中被照相机捕获。因此,首先我根据它们的不失真参数对其进行不失真,然后将它们移动到使主要点位于中心的位置,然后将实时纹理放入VR场景中。我没有打电话给stereoRectify来获取一些新的R&P矩阵,以便将它们放置在VR场景中。一切看起来都很好。

接下来,我想从立体声计算深度。摄像机已经过校准,但是并不能完全关闭以获取NVidia的OpenFlow所需的“ 4像素内”偏移。因此,我想在两台摄像机上调用stereoRectify,并为图像提出新的R&P转换,以使它们恰好是对极的。 然后,我将把这两个新重新映射的图像传递给NVidia的深度差异计算器OpenFlow。

我的问题是:我在互联网上看到很多例子,从校准的图像直接转到调用stereoRectify,然后获取结果,基于新的R&P变换创建不失真的地图,然后重新映射输入图像通过不失真的地图,结果肯定是极线和水平线匹配,但是-这些图像完全不适合通过头戴式耳机在“ VR”空间中“查看”,除非您确切地知道如何基于一些疯狂的数学来修改它们

如果提供图像的耳机最初告诉您,耳机处于旋转R和位置P,并且您知道相机相对于耳机的偏移和旋转,那么在致电stereoRectify之前,您应该知道将耳机放置在何处。 VR空间中的图像,以便“它们看起来正确”。 StereoRectify不知道摄影机在3D空间中的位置,它的唯一参数是摄影机固有参数,失真参数以及从L到R的变换和旋转。 stereoRectify的结果是针对与原始摄影机的位置和旋转无关的“假想平面”。它不返回任何将结果与原始转换相关的信息。您不知道如何采用新的R&P矩阵并“移动”原始摄像机的位置,从而使结果“更正确”。

我一定很想念东西。您如何使用StereoRectify返回的新R&P矩阵来修改摄像机在VR中的位置和旋转,以使定义空间中实时纹理的平面“更正确”?

更简洁地说:返回的R&P矩阵与相机所在的3D世界中的原始R和P矩阵有何关系?如果R和P在新的“世界”上定义了新的投影和旋转视图,我如何将其转换为摄像机所在的真实世界坐标?

我知道奇怪的问题。

0 个答案:

没有答案