首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >立体视觉:深度估计

立体视觉:深度估计
EN

Stack Overflow用户
提问于 2013-11-13 14:54:31
回答 1查看 6.6K关注 0票数 9

我正在从事立体视觉任务,我想获得立体视觉相机和物体之间的距离。我使用Matlab与计算机视觉系统工具箱。

使用“Matlab摄像机标定工具箱”对摄像机进行了标定,得到了左、右摄像机的内在参数和外部参数(右摄像机的位置、wrt左摄像机的位置)。我也有一对校正的图片和他们的视差图。对于视差的估计,我使用了Matlab函数视差(Matlab)。我知道相机的基线和焦距,但我的结果仍然是错误的。

代码语言:javascript
复制
baseline = 70 mm
focal length = 25 mm
disparity = 60 pixels
---------------------
depth = baseline * focal length / disparity = 70 * 25 / 60 = 29 mm

但我知道距离是cca 600毫米。这个公式对吗?单位呢?mm * mm / pixel != mm。特别是我想用相机矩阵(内在参数)来计算,但我不知道如何计算。我会感谢任何暗示。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-13 15:03:28

就像你说的,你必须把这个单位转换成毫米。为此,您需要这个公式

代码语言:javascript
复制
z = (b*F) / (d*s)

mm = (mm * mm) / (pixel * (mm/pixel)) 

哪里

  • Z=深度(毫米)
  • B=基线(毫米)
  • F=焦距(毫米)
  • D=深度(象素)
  • S=传感器大小(以mm/像素为单位)。(通常它提供的是这个,之前的转换也是这样)。

编辑

有时你的焦点是像素,所以你不需要使用传感器的大小。所以就用你的公式:

代码语言:javascript
复制
z = b*F / d
mm = mm * pixel / pixel
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19956910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档