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

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

我正在使用一对立体图像计算场景中对象的真实世界坐标。这些图像是完美针孔相机的模拟,因此没有需要校正的失真,也没有旋转。我知道 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/

相关文章:

python - 对齐的 LaTeX 方程 SymPy

python - 如何绘制 sympy 微分与数组和循环方法?

python - 如何使用opencv去除原始图像中的噪声

python - 如何去除图像 OpenCV、Python 中的噪声?

neural-network - lr_mult = 0 有什么影响?

python - Django Rest Framework 给出 "Datetime has wrong format"

c++ - Qt Creator + OpenCV : Program runs from . exe 但不是来自编辑器

python - 如何用OpenCV计算某种颜色的像素数?

opencv - 比较 opencv 中的 Blob 检测与结构分析和形状描述符

python - 将数字与字母分开的正则表达式