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

时间:2015-05-27 18:42:17

标签: python opencv computer-vision coordinates stereo-3d

我正在使用一对立体图像计算场景中对象的真实世界坐标。图像是完美针孔相机的模拟,因此没有失真来纠正,也没有旋转。我知道OpenCV有很多功能来校准立体相机并创建视差图,但如果我想要计算的只是一个点的坐标,那么有一种简单的方法吗?

1 个答案:

答案 0 :(得分:3)

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,