OpenCV3历程(12)——双目视觉测距原理以及推导公式

转载自:https://blog.csdn.net/piaoxuezhong/article/details/79016615

一、双目测距原理

通过对两幅图像视差的计算,直接对前方景物(图像所拍摄到的范围)进行距离测量。双目摄像头的原理与人眼相似。人眼能够感知物体的远近,是由于两只眼睛对同一个物体呈现的图像存在差异,也称“视差”。物体距离越远,视差越小;反之,视差越大。视差的大小对应着物体与眼睛之间距离的远近,这也是3D电影能够使人有立体层次感的原因。

 上图中的人和椰子树,人在前,椰子树在后,最下方是双目相机中的成像。其中,右侧相机成像中人在树的左侧,左侧相机成像中人在树的右侧,这是因为双目的角度不一样。在通过对比两幅图像就可以知道人眼观察树的时候视差小,而观察人时视差打。因为树的距离远,人的距离近。这就是双目三角测距的原理。双目系统对目标物体距离感知是一种绝对的测量,而非估算。

二、理想双目相机成像模型

实际场景中物体的三维坐标可以通过双目立体视觉技术来确定。如下图是双目立体视觉原理图,OL和OR是左右相机的光心,他们的光轴和各自的成像表面如图所示。假设两相机的内部和外部参数完全相同,焦距为f,光心之间的距离(基线)为B,两台相机在同一平面上,是他们的投影中心的Y坐标相等。同一时刻空间点p(x,y,z)在两相机成像点分别为Pleft和Pright。

OpenCV3历程(12)——双目视觉测距原理以及推导公式_第1张图片

 

 根据三角形相似定律:

解得:

 

根据上述推导,要求得空间点p离相机的距离(深度)z,必须知道:

1、相机焦距:f,左右相机基线b,即两个摄像头光心之间的距离 

2、视差:

即左相机像素点(Xl,Yl)和右相机中对应点(Xr,Yr)的对应关系,这是双目相机的核心问题。

你可能感兴趣的:(OpenCV3历程)