在 Python 和 OpenCV 中使用立体图像计算现实世界坐标

Ric*_*ard 4 python opencv computer-vision coordinates stereo-3d

我正在研究使用一对立体图像来计算场景中对象的现实世界坐标。这些图像是完美针孔相机的模拟,因此没有需要校正的失真,也没有旋转。我知道 OpenCV 有一堆函数来校准立体相机和创建视差图,但如果我只想计算一个点的坐标,有没有一种简单的方法可以做到这一点?

Fra*_*ari 5

1)没有旋转的情况,仅平行于图像平面的水平轴平移,具有相同焦距的相机。

用“f”表示公共焦距。用“b”表示立体对的基线,即相机光学中心之间的距离。给定一个 3D 点 P,在两个相机中在水平图像坐标 x_left 和 x_right 处可见,用“d”表示它们的视差,即差值 d = x_left - x_right。

根据初等几何,可以得出 P 在左相机坐标中的深度 z_left 为:

z_left = b * f / d。

2)任何其他情况(焦距不等、其他内在参数差异、非线性镜头畸变、相机间旋转、不平行于x轴的平移等):

别费心了,用OpenCV,