我正在使用一对立体图像计算场景中对象的真实世界坐标。这些图像是完美针孔相机的模拟,因此没有需要校正的失真,也没有旋转。我知道 OpenCV 有很多函数来校准立体相机和创建视差图,但是如果我只想计算一个点的坐标,有没有一种简单的方法可以做到这一点?
最佳答案
1) 没有旋转的情况,只有平行于图像平面水平轴的平移,焦距相等的相机。
用“f”表示公共(public)焦距。用“b”表示立体对的基线,即相机光学中心之间的距离。给定一个 3D 点 P,在水平图像坐标 x_left 和 x_right 的两个相机中可见,用“d”表示它们的差异,即差异 d = x_left - x_right。
根据初等几何,P 在左相机坐标中的深度 z_left 是:
z_left = b * f/d。
2) 任何其他情况(焦距不等、其他内在参数不同、非线性镜头畸变、相机间旋转、平移不平行于 x 轴等):
不用麻烦,用OpenCV,
关于python - 在 Python 和 OpenCV 中使用立体图像计算真实世界的坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30490625/