问题标签 [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 回答
1390 浏览

gstreamer - 如何使用 http 或 rtsp 协议将来自两个 ip 摄像机的两个视频流合并为一个通过 ip 的流?我想使用 gstreamer

我有两个提供 mjpeg 流的 ip 摄像机。我想将这些相机视为左右相机以获得立体效果。

我已经使用 GStreamer 处理过单独的左右摄像机。它工作得很好。

现在我只想使用单流同步播放。为此,我想将这两个 ip camera 流合并为单个流,然后在播放器端解码它。所以这个问题将分为两个步骤首先从两个 ip camera 流中获取单个流,这里左右源可以用“left”和“right”标签等标记。第二个使用标签获取每个流,解码并显示作为左右图像获得主动立体声。

它类似于 video3d,但我想使用有源立体声而不是无源立体声。我想使用 GStreamer,因为它是跨平台的,但我是 GStreamer 的新手。如果您可以为第一步提供 GStreamer 管道并为第二个状态提供逻辑,这将对我有所帮助。

0 投票
2 回答
9464 浏览

opencv - OpenCV立体相机,检测物距

我是 OpenCV 的新手,我构建了 openCV 并安装了 Qt 以成功运行示例http://code.google.com/p/opencvstereovision/source/checkout。结果是左右网络摄像头捕获,并在校准后为两者和深度图校正图像。我想做以下事情。我将单击一个对象以聚焦于这些左侧或右侧图像中的任何一个。然后我想检测另一张图像中的相应像素并计算到这个物体的距离。我不知道现在该做什么,我需要指导。也许如果我先计算对应点,我可能会解决剩下的问题。我怎样才能做到这一点?

0 投票
1 回答
2944 浏览

opencv - OpenCV 立体校正

如果我已经在实验室中计算了内在函数(相机矩阵和失真系数)。

然后,我将相机移到了现实世界的领域。我在现实世界中使用了大约 6-10 个已知位置,使用 SolvePnP() 估计相机位姿。所以我也有两个相机旋转和平移。

我现在想使用 2 个摄像头来创建立体通信。问题是:我必须使用 stereoCalibrate() 吗?

或者我可以使用已知的内在函数立即调用 StereoRectify 吗?它说 StereoRectify() 期望旋转和平移向量/矩阵,文档说它期望:

由于我有两个相机的相机姿势,我可以简单地减去从 SolvePnP 获得的 2 个平移矢量和旋转矢量,并将结果传递给 StereoRectify() 吗?(两台相机使用相同的共同物点参考系统)

0 投票
1 回答
4140 浏览

image-processing - OpenCV:立体声整流问题(使用书中的示例代码)

所以我在使用 OpenCV 时遇到了问题。我使用了“Learning OpenCV”一书中的示例代码。我得到了计算两个相机的所有内在函数和外在函数的代码,但是当我去重新映射图像时,我得到的只是一张空白图像。我使用来自两个相机的 6 张图像,以及 9x6 棋盘。输入文件交替显示左右图像( lr=i%2 让我觉得......)。

下面是我的代码。我只在最后添加了 cvRemap() 函数。

下面是从程序中得到的外在矩阵。

并且找到的内在参数如下。

任何帮助将非常感激。我对 OpenCV 不是很有经验,而且我很难理解大多数功能正在做什么。所以我可以

0 投票
1 回答
2482 浏览

opencv - 从 opencv 中立体装置拍摄的图像生成的点云

我可以查看点云库提供的点云。但是,问题是我无法查看从立体钻机图像生成的点云。图像的分辨率为 640x480 像素。

但是,每对图像的点云中的点数是不同的(即,不是有 307200 个点,而是有更少的点,如 194261、190472 等)。

为什么我在点云中没有得到 307200 点?

我应该如何使用点云库查看这样的点云?

0 投票
2 回答
2947 浏览

opencv - 视差图颜色在opencv中是向后的

我的问题是我的视差图中的颜色是向后的。因为距离较远的东西比靠近相机的东西要轻。

我尝试了很多东西(即 convertTo、convertScaleAbs 以及其中的各种值组合等),但似乎无法让视差图中的颜色反转(即正常 - 靠近的东西比远离的东西更轻) .

我需要一些帮助才能做到这一点。

另外,出于好奇,我怎样才能将视差图的颜色空间更改为我在网上看到的 MATLAB 中的彩色空间?

这是我的代码以及pastebin。http://pastebin.com/E3vVN6UU

0 投票
0 回答
512 浏览

image-processing - 为什么opencv立体对应中对象边界不清晰

我得到了 2 张几乎平行的照片,而且彼此之间的距离并不远。
我正在使用 OpenCV 尝试创建视差图(立体对应)。
因为我试图在现实世界的场景中使用它,所以使用棋盘校准有点不切实际。
因此,我正在使用stereoRectifyUncalibrated()

我尝试比较结果,使用 2 组不同的对应点进行整改:

  • 手动选择点(指向和单击)
  • 从 SURF 生成并使用 RANSAC 过滤的点

输入图像1:http: //i.stack.imgur.com/2TCi3.jpg
输入图像2:http: //i.stack.imgur.com/j1fFA.jpg

(请注意,在将图像用于校正等之前,我会对图像进行不失真处理)

使用 SURF 和 RANSAC 校正图像:(
按顺序排列 1 和 2):http :
//i.stack.imgur.com/pwbUw.jpg http://i.stack.imgur.com/mb7TM.jpg

使用手动选择的点校正图像(更不准确!):http:
//i.stack.imgur.com/Bodeg.jpg

现在,问题是,查看结果,我们看到 surf 版本几乎完全纠正了。(极线对齐得很好)。
虽然手动选择的点版本被纠正得很糟糕......极线远未对齐。

但是当我们使用我们的校正来查看 openCV 的 sgBM() 的结果时:
手动点结果 :http:
//i.stack.imgur.com/N8Cyp.png
SURF 点结果:
http://i.stack.imgur。 com/tGsCN.jpg

SURF 点显示的视差/深度更准确/正确(校正良好的版本)。那里并不奇怪。
然而,实际检测到的对象像素和对象边界实际上在严重纠正的版本上要好得多。
例如,在校正不好的视差图中,您可以看到笔实际上是笔,并且具有笔的形状,但在校正好的视差图中却没有。
问题是,为什么? 我该如何解决?(我试着玩弄 sgBM() 参数,确保它们对于两者等都是相同的,但它没有任何效果。正是由于某种原因,单独的不同校正使严重校正的图像看起来不错(尊重到对象边界))。

0 投票
1 回答
5302 浏览

opencv - 半全局块匹配

我正在研究opencv的半全局块匹配。事实上,我不明白为什么我们需要浏览所有方向来计算成本聚合?有没有人试图限制这条路径(扫描线)的长度?

0 投票
1 回答
1176 浏览

opencv - 良好的预制立体相机和机器人车辆建议

我正在从事与自主导航相关的爱好项目。我想使用立体相机进行障碍物检测,然后控制机器人车辆的运动以避开障碍物。

(1) 我正在尝试寻找具有并行/串行/以太网端口与计算机接口的现成机器人车辆。我应该能够通过 PC 向车辆发送命令以向左/向右转、加速/减速、启动/停止。

市场上有没有好的、准确、可靠、便宜的机器人车辆?

(2) 我正在考虑制作立体相机。但是如果市场上有一个好的、准确的、可靠的、便宜的立体相机。我也准备买了。

注意:这是一个小型宠物项目,因此寻找“便宜但可靠”的立体相机和可以与 PC 连接的机器人车辆。

提前致谢。

PS:如果在印度有货就好了。

0 投票
1 回答
2912 浏览

c++ - initUndistortRectifyMap 返回空地图矩阵(C++)

我首先使用 opencv 包 (stereo_calib.cpp) 中的示例代码校准了我的相机。现在我想用它来纠正立体匹配的图像。我开始纠正一个图像,但我无法让它工作,因为 initUndistortRectifyMap 返回一个不包含任何内容的地图。我无法找出我做错了什么。

回答:这很简单,因为图像没有加载,图像大小为零,所以地图是一个空矩阵。我会尽快发布答案。