问题标签 [stereoscopy]

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 回答
1990 浏览

opencv - 扭曲的 3D 重建 OPENCV + PCL(Martin Peris 代码)

我正在使用 Martin Peris 代码使用 OpenCV 和 PCL 进行 3D 重建(链接如下):

http://blog.martinperis.com/2012/01/3d-reconstruction-with-opencv-and-point.html

故障点:

在“3D 查看器”窗口中查看 3D 重建的最后一步时遇到问题。我得到了一个完美的视差图像,如博客所示,但我的最终重建图像如下所示:

https://drive.google.com/file/d/0Bx1aNPhwJU4kMmt1cUVHVXBOLWM/edit?usp=sharing

您可以将此与该博客中给出的视频链接中显示的进行比较。

我尝试过的事情:

  1. 检查是否安装了所有必需的库。我相信否则代码不会编译并给我任何结果。
  2. 检查我的机器上是否有图形支持:

$lspci | grep VGA

09:00.0 VGA 兼容控制器:NVIDIA Corporation G71GL [Quadro FX 3500] (rev a1)

我的疑惑:

  1. 如果 OpenGL 或 OpenCV 或 PCL 缺少某些库,这会使 3D 重建窗口受到影响。
  2. OpenCV 中有争议的 reprojectImageTo3D() 函数,Martin Peris 在代码中也使用了该函数。
  3. 你们中的一个人可以帮助我的其他一些原因;-)

其他详情:

Ubuntu 版本:12.04

OpenCV 版本:2.3.1-7

任何建议都会很有帮助!

谢谢,

普拉图

0 投票
2 回答
865 浏览

camera - GStreamer Videomixer Raspivid

我到处搜索,没有找到任何人使用 gstreamer 的 videomixer 功能和树莓派的 raspivid。

我正在尝试复制 raspivid 输出并将它们并排合并,然后最终通过 tcp 发送流。但是现在我只是在寻找一些帮助来让视频混合工作。

对于我的特定应用程序,生成的视频应该是 1280x568,我不在乎视频之间有任何角度来创建“3d 效果”,因为我正在制作的特定应用程序不需要它。

我正在使用 gstreamer 1.2,所以函数调用是 gst-launch-1.0 并且我不能使用 ffmpeg b/c 我相信它已经被贬低了,所以我假设我只会使用 videoconvert 来实现相同的结果。

我不确定我是否应该使用 h264parse 而不是 decodebin。所以这是我到目前为止所得到的: gst-launch-1.0 fdsrc | raspivid -t 0 -h 568 -w 640 -fps 25 -hf -b 2000000 -o - ! decodebin ! queue ! videoconvert ! videobox border-alpha=0 right=-640 ! videomixer name=mix ! videoconvert ! autovideosink fdsrc | raspivid -t 0 -h 568 -w 640 -fps 25 -hf -b 2000000 -o - ! decodebin ! queue ! videoconvert ! videobox border-alpha=0 left=-640 ! mix.

我试图根据这两个来源对此进行建模(第一个链接中的 raspivid 命令对我有用): http ://www.raspberry-projects.com/pi/pi-hardware/raspberry-pi-camera/streaming-video -using-gstreamer http://www.technomancy.org/gstreamer/playing-two-videos-side-by-side/

我知道我可能还很遥远,但我很难找到如何做到这一点的例子,尤其是使用 raspivid 函数。我将不胜感激任何帮助。谢谢你。

0 投票
1 回答
1395 浏览

algorithm - 如何实现混凝土红青色立体眼镜显示器红青色校准程序?

我正在开发一个治疗儿童的应用程序。它必须为左眼和右眼显示不同的图像。我决定使用廉价的红青色眼镜来分隔眼睛的视野。第一只眼睛只能看到红色图像,第二只眼睛只能看到青色。

问题是显示器上的颜色并不是真正的红色和青色。眼镜也不理想。我需要执行校准程序,以搜索当前显示器和眼镜的最佳红色和青色。我的意思是我需要在一些更合适的颜色上更改白色(背景颜色)、红色和青色类,以使红色和青色仅对一只眼睛可见。

有人知道任何校准浮雕颜色的算法吗?我想我需要实现一个特殊的 UI 来校准颜色。我正在开发适用于 iOS 和 Android 的应用程序。

0 投票
0 回答
732 浏览

c++ - OpenGL四缓冲立体不显示两个缓冲区

在我的应用程序中使用四缓冲立体声时,我的视频卡确实支持四缓冲立体声(Quadro 5000/PCIe/SSE2),屏幕上只显示一个缓冲区,我正在使用 glut 和 openGL 与 vbos 数组,我正在初始化 glut方法 :

在这里绘制时我如何填充两个缓冲区:

双眼只显示正确的缓冲区(最后一个调用的缓冲区)。我首先尝试绘制正确的缓冲区,但随后显示为空白(未绘制) OnMouseMotion 确实根据位置移动鼠标,我知道我的移动设置不正确,但现在我专注于显示两个不同的图像,一个右眼一个,另一个。有什么我忘记了吗?或者也许 gl 调用不正确?

0 投票
1 回答
5607 浏览

matlab - Matlab中的图像校正算法

我最近发现了一篇关于两个立体图像对的图像校正的有趣文章。我喜欢这个算法,因为它非常紧凑,而且根据文章的建议,它做了正确的事情。在两个图像上实现 matlab 版本后,我没有得到正确的校正图像。除了具有像素的左侧和向下线之外,我得到了一张全黑的图像。在图像中,原始图像中也有一些灰色像素,但只有一只手。我在 matlab 代码下方发布了文章的链接以及我为一张图像获得的结果示例(对于另一张图像它是相同的)

这是文章A compact algorithm for rectification of stereo pair的链接。

带有初始图像和结果的屏幕截图如下: 截屏

初始图像是以下两个(这样您就不必搜索另一个立体声对):立体图像 1 这里 立体图二在这里

这是我调用 rectify 函数的“主要”代码

感谢您的时间!

0 投票
1 回答
1916 浏览

opencv - OpenCV 立体校准参数

我正在建立一个立体摄像系统(带有两个摄像头)。我正在尝试在 C++ 中使用 OpenCV 获取旋转矩阵和平移向量。cameraCalibrate我已经使用opencv 函数为每个相机计算了矩阵相机和失真向量。现在我正在尝试使用stereoCalibrate. 我不明白 stereoCalibrate 参数:imagePoints1imagePoints2. 这两个参数是否包含两个摄像机查看的同一场景中的同一点,或者我可以从摄像机拍摄的同一场景中检测到不同的点?

0 投票
0 回答
307 浏览

javascript - 立体(并排)移动网络应用程序

对移动 Web 应用程序的经验很少,但想创建网站 (192.168.2.87:8080/jsfs.html) 的几乎立体图像(并排图像相同)。有谁知道这是否可以通过移动网络应用程序实现?

在上下文中,它是使用来自 IP Webcam for Android 的 javascript 的视频提要,视频实际上是通过组合静止镜头在浏览器本身中呈现的。

0 投票
1 回答
375 浏览

python - 如何使用 python vtk 获得立体效果?

我得到了用于渲染 3D 对象的 vtk。现在我想以立体方式渲染它。但不知道该怎么做我尝试了这样的事情

但它不起作用。任何机构都可以给出一些想法吗?

0 投票
3 回答
2869 浏览

android - 如何使用 Google Cardboard SDK 构建光球图像的立体查看器

Cardboard Demo 应用程序有一个很好的功能,我们可以看到现有的照片球。我想构建一个类似的应用程序

我已经浏览了谷歌提供的Cardboard SDK 。但是还没有找到一个简单的方法来做到这一点。我必须从头开始构建,获取所有感官输入并相应地更新框架,这是一个非常痛苦的过程。

我想知道

  1. 如果有一个简单的方法来做到这一点
  2. 如果有我可以构建的 Google Cardboard 应用程序的源代码
0 投票
1 回答
4694 浏览

opencv - 获取深度图

我无法从视差中获得正常的深度图。这是我的代码:

我的图像是:

在此处输入图像描述 在此处输入图像描述

视差图:

在此处输入图像描述

我得到这样的点云: 在此处输入图像描述

Q 等于:[ 1., 0., 0., -3.2883545303344727e+02, 0., 1., 0., -2.3697290992736816e+02, 0., 0., 0., 5.4497170185417110e+02, 0 ., 0., -1.4446083962336606e-02, 0.]

我尝试了很多其他的东西。我尝试了不同的图像,但没有人能够获得正常的深度图。

我究竟做错了什么?我应该使用 reprojectImageTo3D 还是使用其他方法来代替它?可视化深度图的最佳方法是什么?(我试过 point_cloud 库)或者你能给我提供数据集和校准信息的工作示例,我可以运行它并获取深度图。或者我如何从 Middlebury 立体数据库 ( http://vision.middlebury.edu/stereo/data/ )获取 depth_map ,我认为没有足够的校准信息。

编辑:现在我得到像这样的东西: 在此处输入图像描述

当然更好,但仍然不正常。

Edited2:我试过你说的:

我通过 cv::minMaxIdx(...) 行得到这个结果: 在此处输入图像描述

当我评论这一行时: 在此处输入图像描述

Ps:另外请你告诉我如何仅知道基线和焦距以像素为单位计算深度。