首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用立体视觉计算从对象到相机的距离

使用立体视觉计算从对象到相机的距离
EN

Stack Overflow用户
提问于 2018-08-22 03:23:06
回答 1查看 2.3K关注 0票数 0

我一直在尝试计算一个物体和我的一个相机(相同型号)之间的距离。经过校准,我成功地得到了以下矩阵。分辨率为600 x 480。

代码语言:javascript
复制
Left Camera Matrix
[[624.65871068   0.         279.196958  ]
 [  0.         637.37379116 267.35689643]
 [  0.           0.           1.        ]]
Left Distortion Coefficients
[[ 0.07129149 -0.32551738  0.00165004  0.00582742  0.55830776]]
Right Camera Matrix
[[628.54997755   0.         278.88536288]
 [  0.         638.88299319 262.29519192]
 [  0.           0.           1.        ]]
Right Distortion Coefficients
[[ 0.05281363 -0.20836547  0.0015596   0.00694854 -0.18818856]]
Calibrating cameras together...
Rotation Matrix
[[ 9.78166692e-01 -2.92706245e-02 -2.05750220e-01]
 [ 2.87961989e-02  9.99571250e-01 -5.30056367e-03]
 [ 2.05817156e-01 -7.39989429e-04  9.78590185e-01]]
Translation Vector
[[6.87024126]
 [0.33698621]
 [0.82946341]]

如果我可以从两个摄像机中检测到一个物体,假设在左摄像机中的像素(a,b)和右摄像机中的(c,d)中发现了一个目标。有没有什么方法可以让我得到一个相机到物体的距离?

另外,我的脚本实现了cv2.seadretify和cv2.initUnfiltitRectifyingMap,它们可以用来获得固定的帧,然后使用cv2.StereoBM_create()来计算深度图。好吧,老实说,我不确定这是否可以用来计算距离。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2018-08-22 09:44:26

你正在计算到相机的距离,你需要从你的相机矩阵(通常是“左”)知道两个参数:(1)基线;(2)焦距。

通常我们使用“左”图像作为主要参考图像,因为大多数情况下,我们基于左图像计算深度图/视差图像。

在左侧图像上获得对象(x,y)的坐标后,可以反转公式并计算Z距离,如下所示:

参考:OpenCV - Depth Map from Stereo Images

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51955394

复制
相关文章

相似问题

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