繁体   English   中英

使用立体视觉计算从物体到相机的距离

[英]Calculating a distance from an object to a camera using stereo vision

我一直在尝试计算物体与我的一台相机(同一型号)之间的距离。 校准后,我成功获得以下矩阵。 分辨率为600 x 480。

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.stereoRectify和cv2.initUndistortRectifyingMap,可用于获取固定帧,然后使用cv2.StereoBM_create()计算深度图。 好吧,老实说,我不确定这是否可以用于计算距离。

谢谢!

在计算到摄像机的距离时,您需要从(通常为“左”)摄像机矩阵中了解两个参数:(1)基线; (2)焦距。

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

在左侧图像上具有对象(x,y)的坐标之后,可以对公式求逆,并按以下方式计算Z距离:

在此处输入图片说明

参考: OpenCV-立体图像的深度图

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM