问题标签 [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.
math - 立体校准真实世界坐标数学
我已经实现了《Learning OpenCV》一书中提供的 Stereo 3D 示例。现在我想计算我在左侧图像上单击的像素的真实世界坐标。在这篇文章中,我遇到了这个公式:
Pc = [R|t] * Pw 其中 Pc 和 Pw 是凸轮和世界坐标,R 是旋转矩阵,t 是平移向量。
我已经计算了 [R|T] 部分,但是如何从这个方程计算 Pw 以及如何构建 Pc?我应该只考虑包含 [pixelx,pixely,0] 的 1x3 矩阵吗?
谢谢你的帮助!!!
image - 使用视差图找到对应的像素
我有一对立体图像及其地面实况差异。视差图中的灰度告诉我物体有多远。我如何使用这个灰度级来找到一个像素的对应像素?
我确信灰度级不是沿 x 轴的位移,因为左图 (50, 4) 处的地面实况视差图中的一个像素的视差值为 70(这不能沿 x 轴位移右侧图像中的相应像素,因为坐标将是 (-20, 4) ,这是无效的!!)
我从米德尔伯里数据集中获得了我的图像和基本事实
如何转换这些值以找到其他图像中相应像素的位置?
PS:图像运动是纯水平的
computer-vision - 用两个不同的焦距估计深度
如果左右相机焦距是两个不同的值,我们怎么可能使用三角测量来估计深度?
有什么方法可以做到吗?
如果两个相机的位置不在同一高度并且会聚怎么办?如何在存在基本矩阵、基线和两个不同焦距的情况下测量深度?
computer-vision - 基本矩阵的平移向量单元是什么
从本质矩阵,我们可以从中计算出 T 和 R 矩阵。但是,T矩阵的单位是什么?是相机坐标中的矩阵吗?
computer-vision - 如何将极点移到图像外部
嗨,我已经从两个图像中计算了基本矩阵,我发现极点位于图像内。如果图像包含极点,我无法使用 matlab 进行校正。
我可以知道如何计算极点不在图像中的基本矩阵吗?
opencv - 计算距离(视差)OpenCV
-- 更新 2 --
如果您使用单个相机来计算距离,以下文章非常有用(尽管它使用 Python 而不是 C++):Find distance from camera to object/marker using Python and OpenCV
最佳链接是立体网络摄像头深度检测。这个开源项目的实现真的很清晰。
以下是原始问题。
对于我的项目,我使用两个相机(立体视觉)来跟踪物体并计算距离。我用 OpenCV 的示例代码校准了它们并生成了一个视差图。
我已经实现了一种基于颜色跟踪对象的方法(这会生成一个阈值图像)。
我的问题:如何使用视差图/矩阵计算到跟踪的彩色对象的距离?
您可以在下面找到获取每个像素的 x、y 和 z 坐标的代码片段。问题:Point.z 的单位是厘米、像素还是毫米?
我可以使用此代码获取到被跟踪对象的距离吗?
先感谢您!
--更新 1 --
例如,我生成了这个阈值图像(左侧相机)。我几乎拥有相同的正确相机。
除了上述阈值图像外,应用程序还会生成视差图。如何在视差图中获取手部像素的 Z 坐标?
我实际上想获取手部像素的所有 Z 坐标来计算平均 Z 值(距离)(使用视差图)。
opencv - 在立体相机的右图像上找到对应的 2d 点
我在立体相机的左图像中有一个点(xl,yl)。我想确定这个相同的点在右图中的位置,比如说右图中的点(xr,yr)。我有使用opencv进行相机校准的所有旋转矩阵和平移矩阵。
android - HTC Evo 3D 立体预览 - 降低水平分辨率
我正在编写一个 Android 应用程序,它在 HTC Evo 3D 上使用来自相机的立体图像数据。我尝试使用带有 HTC OpenSense API 提供的一些 3D 特定功能的标准 Android API 访问数据。到目前为止,我可以在立体模式下访问相机,并且可以使用onPreviewFrame()
回调方法获取图像数据。
但是,可用的“原始”图像数据(data[]
字节数组)onPreviewFrame()
并不完整。我得到的图像是正确的并排立体图像,但它的水平尺寸缩小了两倍。例如,当将相机预览尺寸设置为 1280x720 像素时,我希望得到一个 2560x720 像素的图像(两个所需分辨率为 1280x720 像素的图像)。但我得到的是一张 1280x720 分辨率的照片,其中一半来自右侧摄像头,另一半来自左侧摄像头。我不知道为什么水平分辨率会降低。
这个论坛上有一个类似的帖子,但答案并没有真正解决问题。尽管DisplaySetting.setStereoscopic3DFormat()
在我的程序中返回 true,但它似乎对显示或图像数据没有任何影响。
有没有人有这个问题的经验?
opencv - OpenCV中stereoCalibrate函数的错误
我正在尝试校准转换为两个 640x360px mp4 测试文件的松下 z10000 3D 相机的输出。
-我更像是一个设计师而不是一个程序员(我在大学里从来没有任何数学科目)所以请原谅我的一些愚蠢的错误
我认为我的代码看起来不错,但我在校准过程中没有得到好的结果,stereoCalibrate 的投影误差约为 6-20,但它应该 < 0.3(我在这里阅读)
我想我在 imagePoints 和 objectPoints 上做错了——但我想不通。
找到 chessBoardCorners 后,我释放 Videocapture 以在校准后重新加载它
整个程序(重新映射、视差图)有效,但结果很糟糕。
谢谢
opencv - 视野如何改变立体视觉中的深度估计?
我正在尝试从带有两个摄像头的立体系统估计深度。我使用的简单等式是:
两个摄像头的视野不会改变允许的最大深度?它只改变可测量的最小深度?