问题标签 [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.
opencv - 使用两个具有自动对焦技术的网络摄像头进行立体声装置校准
免责声明:为这个非常大的问题道歉,因为它可能会占用您很多时间。
我有一个由两个网络摄像头组成的立体设置,这些摄像头拥有自动对焦技术。立体设置采用标准配置,其中摄像机相隔 10 厘米距离。
我正在使用由 OpenCV 示例程序提供的 stereo_calib.cpp 程序进行立体校准。
最初,我通过我的立体设备捕获棋盘图像,就像它在示例 cpp 立体图像中显示的那样,然后尝试校准设置,但立体校正要么完全空白,要么未失真的左右图像倾斜约40度。
既然如此,那么我通过保持Z距离恒定,没有任何旋转,捕获了一组17个立体对棋盘图像,此时立体图像在立体校准过程中得到正确校正。该工作集包含由立体设置与程序一起拍摄的棋盘图像以及校正效果的图像。
后来,当我尝试再次校准立体设置时(因为立体设置中的相机受到干扰),我的立体设备拍摄了另一组新的棋盘图像,程序无法纠正立体图像。我提供了非工作集,您可以在其中检查立体设置拍摄的图像以及校正图像。
因为一张图胜过千言万语。
你必须看到所提供程序的输出图像,它让你知道的比我用我自己的话所能说的要多得多。
我正在尝试寻找一些立体人脸识别技术的新方法。
非常感谢这方面的任何帮助。
除此之外,我还需要一些现有的技术,通过这些技术我可以开始尝试使用立体信息进行人脸识别的新方法。
opencv - 如何使用openCV确定平移和旋转矩阵
我有两张从立体相机拍摄的图像。如何使用 OpenCv 找到平移和旋转矩阵?
android - 来自 HTC Evo 3D 的 MPO 图像
我的团队正在为使用立体摄像头的 HTC 手机开发应用程序。为了进行处理,我们要求 3D 相机拍摄的静止图像为 MPO 格式。默认情况下,它返回 JPS 图像。
如何让相机返回 MPO 图像?是否有记录在案的地方?
我在 HTC 网站上花了一段时间,但无法找到可能有帮助的 API 或相机应用程序的源代码(因为他们的相机应用程序可以执行 MPO 文件)。
opencv - 给定 OpenCV 中的立体视差图,如何找到左右图像(每像素)之间的真实像素偏移?
我已经成功地使用 OpenCV 2.4.5 中的 cv::stereoSGBM 类创建了一个令人满意的视差图,具有 256 个不同的视差级别。如文档中所示,我已将所有视差值除以 16,但此最终地图不可能包含“真实”视差:如果我将 (x, y) 像素的水平维度添加到其计算的视差 (x + d),得到的坐标 (x + d, y) 在另一幅图像中对应一个完全不同的像素。
我猜这个问题源于我最初将stereoSGBM参数化为256个视差级别,但实际的最大视差(以像素为单位)要小得多。由于我真的不知道实际的最大差异,我不能相应地对由 stereoSGBM 计算的值进行归一化。
我需要实际的视差值来计算密集的立体对应(三角测量和 3D 重建所必需的)。
opencv - 三像整改
有没有人试过或知道是否可以在opencv中纠正三个图像?我在“L”设置中有三个摄像头。意思是“中间”一个摄像头,一个在它下面,一个在它旁边。我可以成对地轻松纠正它们,只需进行垂直和水平纠正,但我不知道是否可以使用opencv将它们全部纠正到同一个图像平面。
请帮忙
computer-vision - 如何将极点移到图像外部
嗨,我已经从两个图像中计算了基本矩阵,我发现极点位于图像内。如果图像包含极点,我无法使用 matlab 进行校正。
我可以知道如何计算极点不在图像中的基本矩阵吗?
matlab - 如何处理 Epipole inside Image (Stereo image) 和 Persistance of Outlier
我正在使用 Matlab 创建立体图像。我遵循了此处显示的示例:http:
//www.mathworks.com/help/vision/examples/stereo-image-rectification.html
“if”循环是我遇到问题的地方:
我已经注释掉了状态部分,所以我知道图像中有一个极点。我不确定这会产生什么样的问题。这是一个大问题,还是我应该把这部分评论出来?此外,大多数情况下情况看起来不错,但在 RANSAC 实施后仍然存在异常值 - 任何有关修复的帮助将不胜感激!
3d - Youtube HTML5 3D 上传问题
我在 Cyberlink PowerDirector 11 中使用立体 3D 完成了一个示例视频。我使用 SBS 半宽度“挤压”L/R 以 1920x1080 分辨率将视频分别渲染为 MPEG4 AVC 和 H.264 AVC 格式。
我有一个华硕 3D 显示器,并且正在使用 Nvidia 3D Vision2 套件。视频渲染完成后,我将其放入 Nvidia 3D 视频播放器,它运行良好,覆盖了 L/R 眼睛视频。
所以我认为将视频上传到 Youtube 并能够使用我的 Nvidia 眼镜使用 Youtube HTML5 3D 和最新版本的 Firefox 以 3D 形式查看它们是一个简单的过程。我在观看其他 3D 视频时没有问题。
问题是当我在 YT 上观看 FF 中的视频时,我仍然看到 SBS 图像是分开的而不是重叠的。我做了一些研究,似乎我需要为 HTML5 视频使用 WebM (VP8/Vorbis) 而不是 mp4 或 m2ts AVC 文件。
所以在玩了几个转换器之后,我终于设法将 A&V 都转换为 WebM。我将新视频弹回 3D 播放器,它又可以正常工作了。重新上传到 YT 后,我仍然只看到单独的图像,而不是它们被混合在一起。我在标签中有 yt3d:enable=true 和 yt3d:aspect=16:9 。
我还注意到,当我在 HTML5 3D 上查看 Stats for nerds 时,我看到“mime type=video/webm; codecs=vp8.0,vorbis”,但我的视频显示“video/mp4;codes=avc1,mp4a”。
这是有问题的 YT 视频:
http ://www.youtube.com/watch?v=pL4uOMOkOic&feature=html5_3d
这是我上传到 MF 的实际 WebM 文件(以低比特率重新编码,只有 50 MB): http ://www.mediafire.com/download/c2aola7tgkst172/SC_Demo01.webm
我想知道是否有人可以 DL 视频并查看它是否可以在他们的 Nvidia 3D 视频播放器中运行,以及他们是否成功地将其作为 HTML5 3D 正确上传到 YT。
在这一点上,我已经花了几个小时重新编码和上传,我已经厌倦了尝试。我有点想知道这是否是一个 YT 错误,而不是我做错了什么。
c++ - OpenCV 2.4.3 中的 StereoBM 给出了不确定的结果
我正在使用 StereoBM 使用 OpenCV 2.4.3 计算立体视差图,每次运行时我似乎都会得到不同的视差图。视觉上不明显,但有几个像素是不同的,随机的。
我尝试将视差图保存到 YML 文件中,并在使用 WinMerge 比较它们时,我注意到有几个像素的值为 -16,而另一次运行产生了视差值。这也很容易重现。
这个片段显示了我在做什么:
//initialize bm
StereoBM bm(StereoBM::BASIC_PRESET, 128, 7);
bm.state->preFilterType = CV_STEREO_BM_XSOBEL;
bm.state->preFilterCap = 63;
bm.state->SADWindowSize = 7;
bm.state->minDisparity = 0;
bm.state->numberOfDisparities = 96;
bm.state->textureThreshold = 3;
bm.state->uniquenessRatio = 3;
bm.state->speckleWindowSize = 20;
bm.state->speckleRange = 32;
bm.state->disp12MaxDiff = 1;
// Get rectified images
videoOut[MASTER] = Mat(frameHeight, frameWidth, CV_8UC3, static_cast(frameBuf[MASTER]));
videoOut[SLAVE] = Mat(frameHeight, frameWidth, CV_8UC3, static_cast(frameBuf[SLAVE]));
// grayscale conversion
cvtColor(videoOut[MASTER], frame[MASTER], CV_RGB2GRAY);
cvtColor(videoOut[SLAVE], frame[SLAVE], CV_RGB2GRAY);
// Subsample
resize(frame[MASTER], frame[MASTER], cv::Size(), 0.5, 0.5, cv::INTER_LINEAR);
resize(frame[SLAVE], frame[SLAVE], cv::Size(), 0.5, 0.5, cv::INTER_LINEAR);
// stereo computation
Mat disp = cv::Mat(frame[MASTER].rows, frame[MASTER].cols, CV_16S);
bm(frame[MASTER], frame[SLAVE], disp);
// write to file
FileStorage f1;
f1.open("data.yml", FileStorage::WRITE);
f1 << "disp" << disp;
这是 OpenCV 中的错误还是我做错了什么?我也尝试写出输入图像,它们每次都是相同的。只有视差图在变化。
computer-vision - 立体匹配中的视差图和视差图有什么区别?
我是立体匹配的新手。我无法理解差异的概念。什么是视差图和视差图像,它们有什么区别?