问题标签 [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 投票
1 回答
3254 浏览

matlab - 确定一个 3D 点是否在一对立体相机前面,给定它们的基本矩阵

我试图通过一对 iPhone 4S(一个基本的立体系统)获得我在场景的两个不同视图中的点的 3D 度量重建。

为此,我确实校准了相机,估计了基本矩阵并获得了基本矩阵的估计。现在,在 Hartley&Zisserman “CV 中的多视图几何”一书中,我看到对于任何给定的 E,它们对应于 4 个标准相机对,其中只有一个重建为“实际”立体配置。

问题是他们说[cit.]“......重建的点将在这四个解决方案之一的两个摄像头前面。因此,用一个点进行测试以确定它是否在两个摄像头前面是足以在相机矩阵 P' 的四种不同解决方案之间做出决定……”

鉴于我知道 F、K_left 和 K_right,如何确定 3D 点是否在两个摄像头前面?

谢谢,

里卡多

0 投票
1 回答
1937 浏览

macos - 如何在 Mac 上检测四缓冲立体声功能?

我希望我的应用程序能够正确检测四缓冲视频卡的存在,因此只有在可以进行 3D 观看时,我才能启用立体观看。

我这里有两台 Mac 电脑: 1) Mac Pro Mac OS 10.6.8 台式机,带有 nvidia Quadro 4000 显卡;2) MacBook Pro 笔记本电脑 Mac OS 10.6.8,带有两个视频板 a:内置 Intel 高清显卡,b:nvidia GeForce 330M。

第一台计算机的卡上有一个用于 3D 眼镜的连接器。那就是我想在上面显示立体 3D 的那个。我认为不可能在第二台笔记本电脑上观看硬件立体声。所以我希望我的应用程序能够检测到它所在的计算机类型,并做出适当的反应。我以为我知道该怎么做。但它不起作用。我的应用程序认为四路缓冲立体声适用于两台计算机。

见证一个简单的测试程序:

在两台计算机上,都打印了所有三个“四缓冲立体声似乎工作”消息。
在配备 120Hz 立体声监视器的立体声工作站上,窗口的背景呈现淡石灰绿色,因为它在 120Hz 的黄色和青色之间切换。在 60Hz 显示器上,可以感知到两种颜色之间引起癫痫发作的闪烁。这种闪烁也出现在笔记本电脑上,这表明它可能真的支持四缓冲立体声?

最后一个问题:如果我将笔记本电脑连接到外接显示器,我会在外接显示器上看到闪烁的叠加,但在笔记本电脑屏幕上,窗口是黄色的,即只有 BACK_LEFT 缓冲区颜色。仅使用笔记本电脑屏幕或仅使用外接显示器,我观察到闪烁表型。

GeForce 330M 显卡真的支持 Mac 上的四缓冲立体声吗?有没有更好的方法可以从我的程序中检测出真正的 Quadro 板?

0 投票
1 回答
1560 浏览

opencv - 从立体对获取深度图?

有没有人体验过从立体对中获取深度图?我想知道是否有任何方法可以在没有相机参数的情况下获取深度信息。我正在尝试从立体对中获取深度图

0 投票
1 回答
1211 浏览

c++ - 相机传感器尺寸

我正在尝试使用作为装备配置连接的两台摄像机(我正在抓取 640X360 图像的 Microsoft HD3000 CMOS 摄像机)进行一些立体重建。在立体匹配算法的某个时刻,我需要指定诸如“单个传感器元件尺寸”之类的内容,以便能够获得与视图场景一致的距离测量值。如何找出传感器尺寸?我应该提到,在相机数据表中,此信息不存在,焦距也不存在,这对于准确测量是必不可少的。

0 投票
1 回答
551 浏览

opengl - 坐标系的旋转矩阵(欧拉角,手性)

我有一个坐标系,其中相机的方向表示为 R=Rz(k) * Ry(p) * Rx(o) 其中 R 是一个 3x3 矩阵,由每个 X,Y 周围的 3x3 旋转矩阵组成,Z 轴。此外,我有一个约定,其中 Z 轴位于相机的观察方向。X 轴为左右,Y 轴为自下而上。

该 R 矩阵用于多视图立体重建算法。我有一个带有预先校准的相机信息的数据测试集。我想使用这个数据集附带的 R 矩阵。但是,我不知道他们采取什么样的轮换顺序,甚至不知道他们的惯用手。

我怎么能弄清楚这一点?有任何想法吗?

0 投票
1 回答
1354 浏览

c++ - Triclops Stereo API 可以用来处理离线图像吗?

还是完全依赖于 Bumblebee(或任何其他点灰色成像传感器)?我正在尝试链接 Bumblebee 2 立体设备附带的立体处理 API 来处理一些离线图像。看来,triclops 立体函数需要一些上下文标志和校准文件,格式为 input.cal 和 input.ppm(即包含两个立体校正图像的一张图像以某种方式模糊和重叠)。如何从其他离线图像中获取此 input.ppm 文件以仍然能够使用 triclops stereo API。校准文件input.cal怎么样,能不能得到与离线图像一致的,如何得到?

0 投票
1 回答
4389 浏览

computer-vision - 在经过校准的立体视觉设备中,如何获得实现 3D 三角测量算法所需的“相机矩阵”?

我正在尝试实现 Hartley & Zisserman 的“多视图几何”(第 12.2 节)中的(相对简单的)线性齐次 (DLT) 3D 三角测量方法,目的是在未来实现其完整的“最优算法”。现在,基于这个问题,我正试图让它在 Matlab 中工作,然后将其移植到 C++ 和 OpenCV 中,并在此过程中测试一致性。

问题是我不确定如何使用我拥有的数据。我已经校准了我的立体装置,并获得了两个固有相机矩阵、两个失真系数向量、两个相机相关的旋转矩阵和平移向量,以及基本矩阵和基本矩阵。我还有两个点的 2D 坐标,它们应该是两个图像坐标系中单个 3D 点的对应关系(分别由第一个和第二个相机拍摄)。

该算法将两个点坐标和两个 4x3“相机矩阵”P 和 P' 作为输入。这些显然不是从校准中获得的内在相机矩阵 (M, M'),因为它们是 3x3,而且因为单独使用它们的投影将 3D 点放在两个不同的坐标系中,即 - 外在 (旋转/平移)数据丢失。

H&Z 书包含有关使用 SVD 分解从基本矩阵或基本矩阵中恢复所需矩阵的信息(第 9 章),但也有其自身的其他问题(例如尺度模糊)。我觉得我不需要那个,因为我明确定义了旋转和平移。

那么问题是:使用第一个内在矩阵是否正确,将额外的零列作为第一个“相机矩阵”(P = [M | 0]),然后将第二个内在矩阵乘以一个外在矩阵由旋转矩阵和平移向量组成作为额外的列,以获得第二个所需的“相机矩阵”(P'=M'*[R|t])?还是应该以不同的方式完成?

谢谢!

0 投票
1 回答
2308 浏览

c++ - 视差映射中的立体视觉

我正在实现立体视觉深度映射,如 O'reilly 书的 opencv 教科书中的示例所示。

在实现此代码时,我的相机都是水平的并且两者都不相同。执行代码后,我得到了非常奇怪的结果。我想验证这些奇怪的结果是只是因为相机迷失方向还是代码中有任何问题,请帮助我。

这个链接中给出了视差图的照片 一个是网络摄像头另一个是USB摄像头

0 投票
2 回答
3046 浏览

opencv - cvundistortpoints 中的新相机矩阵是什么?

我在理解新相机矩阵的内容时遇到了问题cvUndistortpoints。我们在立体校准中获得了相机的相机矩阵,以及为什么我们必须在 cvstereorectify 中传递从 cvundistortpoints 获得的新相机矩阵。输出后的新相机矩阵与相机矩阵有何不同cvUndistortPoints

0 投票
2 回答
1624 浏览

opencv - cvReprojectImageTo3D 和 CV_32FC3 的问题

我需要你的帮助。我已经使用我的立体声对实现了立体声校准和校正。我有一个非常合理的视差图像。我面临的问题是cvReprojectImageTo3D。我使用了stereobM。并以正确的方式纠正。声明如下

disp 是为立体对获得的视差图像。当我运行 Image3D 的 showimage 命令时,我获得了彩色分割。我的疑问是为什么会这样。我附上我的结果
照片的链接如下

https://plus.google.com/photos/110965556771924534380/albums/5745356738809417329/5748680803335389906

我的另一个疑问是这个 image3D 是如何存储的。CV_32FC3 是否意味着第一个通道给出 x 值第二个给出 y 而第三个给出 z 或排序或有任何其他表示..?