问题标签 [stereo-3d]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1020 浏览

c# - 真实世界距离:立体摄像头、cvPerspectiveTransform、Emgu、C#

对于以下问题,我非常感谢您的帮助:

已从校准的立体装置中捕获并校正灰度图像。我现在正试图在左侧图像中获取特定点相对于左侧相机的真实世界 x,y,z 坐标;我正在尝试使用 cvPerspectiveTransform 来做到这一点。

我的缩写代码如下。

该代码似乎在某种程度上有效,并返回以下 4 个数据点:(15.4510、-474.7451、-527.0327、-912.6536),我理解它们代表 x、y、z 和 w。

问题1)这个假设正确吗?- 可能已经发生了除以 w 并且 XYZ 已经返回,在这种情况下 -912.6536 是一个可以忽略的人工制品 - 欢迎对此提出任何意见。

问题2)但是,如果要实现真实世界坐标X,Y,Z,'x','y','z'中的每一个分别除以'w',得到的XYZ坐标的单位是什么?我理解它们与校准中使用的“点”有关 - 在这种情况下,棋盘角相距 2.5 厘米,但在这种情况下,与物体相机的距离约为 60 厘米......如你所见,数学没有不太行。

我已经认真阅读了布拉德斯基书中的相关页面(并在网上搜索过),但我一定遗漏了一些东西。

谢谢!

0 投票
1 回答
476 浏览

c++ - 太空射击游戏中的 3D 音效

我正在尝试为我的太空射击游戏实现 3d 音响系统。我已经准备好了一切(在每一侧播放不同音量的声音等),但我找不到正确的公式来计算每一侧的正确音量。

总体思路是,每次玩家(舰船)击杀敌人(摄像机始终在舰船顶部)时,都会听到左右音量正确的爆炸声。所以如果敌人在船的右边,那么右边的频道会被听到更多,左边的情况也是如此。

所以我有

游戏引擎是如何计算左右声道的?

0 投票
2 回答
3192 浏览

opengl - 为什么立体 3D 渲染需要专门为其编写的软件?

考虑到对 3D 图形渲染的幼稚看法,立体 3D 渲染似乎对开发人员基本上是透明的,并且完全是图形硬件和驱动程序的一个特性。无论 OpenGL 窗口在何处显示场景,它都需要几何、光照、相机和纹理等信息来渲染场景的 2D 图像。

在场景中添加立体 3D 似乎本质上意味着使用两个横向偏移的摄像机,而所有其他场景变量保持不变。唯一的附加信息是使相机相距多远以及使它们的中心光线会聚多远。鉴于此,采用 GL 命令序列并在驱动程序级别交错适当的命令来驱动 3D 渲染似乎是微不足道的。

似乎需要专门编写应用程序才能使用特殊的 3D 硬件架构,这使得实现起来既麻烦又难以实现。我们会期望这成为立体 3D 实现的未来,还是我掩盖了太多重要的细节?

在我的具体情况下,我们使用的是 .net OpenGL 视口控件。我最初希望仅仅拥有启用立体的硬件和驱动程序就足以启用立体 3D。

0 投票
1 回答
711 浏览

c# - 以编程方式在显卡中启用立体 3D

我们有一台 NVIDIA Quadro 5000,想在我们的 C# 程序开始时在显卡中设置以下设置,以便屏幕自动检测 3D 应用程序。

需要设置以下设置:

  • 立体设置:启用立体 3D
  • 立体声显示模式:Generic Active Stereo
  • 启用立体声:开
  • 垂直同步:开

这可能吗,甚至可能使用 XNA?

0 投票
1 回答
2600 浏览

opencv - OpenCV 立体匹配

我是 OpenCV 的新手。我正在使用 2 个网络摄像头进行立体声项目。我可以将网络摄像头捕获的视频显示为左右视频。我想做以下事情:当我单击左帧上的任何点时,我想在右侧图像上找到匹配点(使用块匹配或任何其他算法将点投影到第二个视图上)。所以我可以计算差异。我怎样才能做到这一点?提前致谢。

0 投票
4 回答
16673 浏览

c++ - opencv中最好的立体对应算法

好吧,我有一个立体设置,它使用 SGBM(半全局块匹配)、BM(块匹配)和使用 OpenCV 库的变分匹配算法计​​算立体图像对的差异。但这种差异不如地面实况差异好。

我想知道的是,opencv 是否提供了任何可以计算地面真实差异的函数或程序。根据 Daniel Scharstein 和 Richard Szeliski 的“A Taxonomy and Evaluation of Dense Two-Frame Stereo Correspondence Algorithms”等论文,Belief Propagation 算法是最好的立体对应算法。

是否有任何现有代码使用图切割算法或opencv中的信念传播算法计算差异。

0 投票
1 回答
2543 浏览

opencv - OpenCV2.4 python - 立体匹配和视差图

嗨!

我想使用 python2.7 和 opencv2.4 获得视差图和立体匹配。

我一直在谷歌搜索,但我没有找到任何可以理解的 python 代码,比如这个:

http://opencv.willowgarage.com/documentation/python/calib3d_camera_calibration_and_3d_reconstruction.html

你有什么好的建议吗??

0 投票
1 回答
3496 浏览

c++ - OpenCV StereoRectifyUncalibrated 到 3D 点云

我有一些代码可以计算出使用 cv::stereoRectifyUncalibrated 计算值的所有部分。但是,我不确定从那里去哪里获得 3D 点云。

我的代码可以与校准版本一起使用,它给我一个 Q 矩阵,然后我将它与 reprojectImageTo3D 和 StereoBM 一起使用,给我一个点云。

我想比较两种不同方法的结果,因为有时我无法校准相机。

0 投票
0 回答
692 浏览

opengl - OpenGL 的立体 3D 渲染问题

我正在尝试在 NVIDIA Quadro 5000 上使用立体 3D 渲染绘制从 .obj 文件加载的基本网格。据我所知,我认为我的左眼和右眼截锥体和偏移量已相应设置,但我的主要问题是写入和清除 BACK_LEFT 和 BACK_RIGHT 缓冲区。似乎它完全错过了第一部分,只绘制了 BACK_RIGHT 缓冲区(渲染循环的第二部分)。如果我能得到一些关于如何在同一帧中写入/读取和清除这些缓冲区的指示,那就太好了。它是一个 Linux 应用程序,因此是 glXSwap(),不使用 glut 或 glew 并使用 glm 进行数学运算。这是我的绘图循环:

编辑:意识到如果我在正确的屏幕上运行我的应用程序,它会呈现 GL_BACK_RIGHT 缓冲区。在左侧屏幕上运行它会绘制 GL_BACK_LEFT。

有任何想法吗?可能是显示器设置?

0 投票
1 回答
1410 浏览

opencv - 基于校正图像的点云立体重建

我有一对从校正立体图像中提取的匹配二维特征。在 OpenCV 中使用 cvPerspectiveTransform 函数,我尝试在 3D 中重建这些特征。结果与现实世界中的实际对象尺寸不一致。我意识到 Matlab 校准工具箱中有一个功能可以将 2D 立体特征转换为 3D 点云。然而,这些特征是从原始图像中提取的。

如果我想使用校正后的图像,是否可以根据 2D 特征位置和视差信息重建 3D 位置。