问题标签 [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.
c++ - opencv stereoRectifyUncalibrated 的问题
我一直在尝试使用 OpenCV stereoRectifyUncalibrated 为一对图像校正和构建视差映射,但我没有得到很好的结果。我的代码是:
drawKeyPoint 序列是我直观地检查两个图像的点的一致性的方式。通过按顺序绘制它们的每个关键点,我可以确定图像 A 上的关键点 i 是图像 B 上的关键点 i。
我也尝试过使用 ndisp 参数,但没有太大帮助。
我尝试了以下一对图像:
得到以下纠正对:
最后,下面的视差图
如您所见,这非常糟糕。我还使用以下 stereoRectifyUncalibrated 示例尝试了同一对图像:http: //programmingexamples.net/wiki/OpenCV/WishList/StereoRectifyUncalibrated和 opencv 教程代码示例中的 SBM_Sample.cpp 来构建视差图,并得到了非常相似的结果。
我正在使用 opencv 2.4
提前致谢!
opencv - 立体对中相机之间的距离
我如何确定立体对中两个摄像头之间的最佳距离,以便使用 opencv 在点云中输出(对于城市中的广场)?
android - 强制 HTC Evo 3D 中的 Android 媒体播放器显示 3D
我想强制 Evo 3D Mediaplayer 将任何视频显示为 3D。问题是据说 HTC Evo 3D 正在变成 mp4 文件上带有 FPA SEI 标志的 3D。有没有办法以编程方式引入该标志?
我想找到它被覆盖的位置并手动将其关闭。我试图弄清楚它在 Android 媒体播放器中的读取位置(http://www.netmite.com/android/mydroid/frameworks/base/media/java/android/media/MediaPlayer.java);但是,我找不到。我的猜测是 HTC 实现了另一个媒体播放器,它在 mp4 标头中查找 SEI FPA 标志。
有没有人可以帮助我解决这种情况?
android - Android MediaPlayer 如何通过查看 SEI FPA 来决定 3D 显示?
我想了解HTC Evo 3D的3D Display的工作原理;但是,代码和 HTCDev 的教程对此没有帮助。据说标头中的 SEI FPA 位会覆盖手动给出的选择,例如:
播放视频代码:
在这一点上,我无法跟踪它在标题中的 SEI FPA 位的位置。我需要帮助来显示必要的代码部分。提前致谢。
nvidia - nvapi 在 d3d10 中使用 NvAPI_Stereo_SetDriverMode
我目前正在尝试使用函数 NvAPI_Stereo_SetDriverMode 将 nvapi 设置为在直接模式下工作。
根据 Nvidia nvapi站点(在手册中),如果您想进行 direct3d 实现,您需要初始化 nvpai ,然后设置直接模式,然后创建设备 (d3d10device) ,然后创建立体声句柄......(继续该程序)。
我试过了,但是函数 NvAPI_Stereo_SetActiveEye(它告诉我要渲染我的网格的哪只眼睛)说该模式不是直接模式。
当我查看头文件时,我发现应该在创建句柄后调用该模式。但是当我这样做时,它返回了 NVAPI_INVALID_ARGUMENT (我再次无法设置活动眼)。
有没有人遇到同样的问题?
我试图在网上查看带有 nvapi 的示例,但它似乎是新的,并且 nvidia 开发人员区已关闭(由于一些技术问题)。
opencv - 立体校准后,将摄像机 1 图像中的 2d 点投影到摄像机 2 图像
我正在使用 opencv 对两个相机(我们将它们命名为 L 和 R)进行立体校准。我使用 20 对棋盘图像并计算 R 相对于 L 的变换。我想要做的是使用一对新图像,计算图像 L 中的 2d 棋盘角,根据我的校准变换这些点并绘制图像 R 上的相应变换点,希望它们与该图像中棋盘的角相匹配。
我尝试了将 2d 点从 [x,y] 转换为 [x,y,1] 的朴素方式,乘以 3x3 旋转矩阵,加上旋转向量然后除以 z,但结果是错误的,所以我猜猜这不是那么简单(?)
编辑(澄清一些事情):
我想这样做的原因基本上是因为我想在一对新图像上验证立体校准。所以,我实际上并不想在两个图像之间获得新的 2d 转换,我想检查我找到的 3d 转换是否正确。
这是我的设置:
我有与两个摄像机(E)相关的旋转和平移,但我没有相对于每个摄像机(E_R,E_L)的对象的旋转和平移。
理想情况下我想做的是:
- 从相机 L 中选择图像中的二维角(以像素为单位,例如 [100,200] 等)。
- 根据我找到的矩阵 E对二维点进行某种转换。
- 从相机 R 获取图像中相应的 2d 点,绘制它们,希望它们与实际角点匹配!
不过,我想得越多,我就越相信这是错误的/无法做到。
我现在可能正在尝试的事情:
- 使用相机的内在参数(比如说 I_R 和 I_L),求解 2 个最小二乘系统以找到 E_R 和 E_L
- 从相机 L 中选择图像中的 2d 角。
- 将这些角投影到相应的 3d 点 (3d_points_L)。
- 做:3d_points_R = (E_L).inverse * E * E_R * 3d_points_L
- 从 3d_points_R 获取 2d_points_R 并绘制它们。
当我有新东西时我会更新
image-processing - Opencv 3D来自立体对中的点
OpenCV 中是否有一个简单的函数可以从立体相机对中获取对象的 3D 位置和姿势?
我用棋盘校准了相机和基线。我现在想取一个已知对象,比如同一个棋盘,在它自己的坐标中具有已知的 3D 点,并找到真实世界的位置(在相机坐标中)。
有针对单个相机 (POSIT) 执行此操作的功能,以及查找整个场景的 3D 视差图像的功能。
执行与相机校准几乎相同的过程并在相机对中找到棋盘必须很简单 - 但我找不到任何获取对象+图像坐标并返回立体对的相机坐标的函数。
谢谢
wpf - SharpGL 是否支持四缓冲立体声?
我正在寻找一个平台来向戴着快门眼镜的用户显示一对立体位图图像。我正在探索通过 SharpGL 在 OpenGL 中实现这一点的可能性。我的目标是 WPF,但 Winforms 不会破坏交易。所以... SharpGL 可以做到这一点吗?
如果没有,在平台上有什么建议吗?我不需要 3D 本身,只是一种用一副快门眼镜同步左/右立体图像的方法。我一直在通过 DirectX 处理 NVidia 3D Vision,但该方法似乎笨拙且专有,更不用说我们仅限于全屏。我喜欢我在 OpenGL 中看到的东西,但缺点是要进行立体声,我们将仅限于启用四缓冲区的视频卡。
unity3d - Nvidia 3d 视觉套件和 unity3d
Unity3d 中有一些用于创建立体 3d 的脚本,您可以在此链接中找到示例。这个 stereokopix3D.js 非常适合立体渲染,您可以在此脚本中调整任何立体参数。
我想知道是否有类似的软件包适用于 Nvidia 3d vision kit 及其快门眼镜(适用于 Windows)。Nvidia 的快门眼镜可以看到任何 exe 文件(因为 exe 像任何其他商业 3d 游戏一样自动在 DirectX 上运行),但我正在寻找的是一个脚本/包来创建立体视觉(比如 stereokopix3D.js 如何创建浮雕)为了在立体声部分工作。
该链接似乎表明,由于立体 3d 系统在 Unity 外部,因此您无法控制在使用 Nvidia 3d 视觉系统时如何解释 3D 效果;所以没有办法使用Nvidia系统。另一方面,我仍然不太确定这一点:)
我还尝试使用 Nvidia SDK 更改立体声参数。我将所需的函数公开到 DLL 中以在 Unity 中使用。但是,DLL 无法正常工作,由于某种我不明白的原因,我无法访问 SDK 中的函数。如果有办法在 Unity 中使用 SDK 功能,我也会很高兴学习这种方式。
此外,如果有任何其他替代方法可以代替浮雕渲染来创建立体视觉,我也会很高兴听到它们,谢谢!
python - Python OpenCV立体相机位置
我想确定立体相机相对于其在世界坐标中的先前位置的位置和方向。我正在使用 Bumblebee XB3 相机,立体声对之间的运动大约是几英尺。
这会在正确的轨道上吗?
- 获取每对的校正图像
- 检测/匹配特征点校正图像
- 计算基本矩阵
- 计算基本矩阵
谢谢你的帮助!