双目视觉之获取三维坐标(立体校正、Q矩阵与三角测量原理)

前言

双目视觉是一种模拟人类立体视觉的计算机视觉技术,它通过两个相机从不同的角度拍摄同一个场景,然后利用三角测量原理,计算出场景中物体的三维坐标信息。这种技术在机器人导航、自动驾驶、物体跟踪、三维重建等领域有广泛的应用。获取三维坐标是双目视觉的核心任务之一。通过对左右相机拍摄的图像进行特征匹配和视差计算,我们可以得到场景中每个像素点的视差值。视差值表示了同一个物体在左右图像中的位置差异,它与物体距离相机的远近有关。利用视差信息,再结合相机的参数,我们就可以通过三角测量的方法计算出物体在三维空间中的坐标。

在本文中,将详细介绍如何利用OpenCV库实现双目视觉的三维坐标获取。通过学习这些内容,读者将掌握双目视觉的基本原理和实现方法,并能够将其应用到实际的项目中💥💥。 目前在持续更新中,这篇博客主要讲基本原理,后续会添加代码。大家多点赞收藏哈!

1、基础知识

1.1 立体校正

深度值的计算建立在双目相机的光轴完全平行,但这个是理想状态,因此需要进行标定和校正。立体校正的目的是将左右相机的图像平面对齐,使得对应点在同一行上。

1.2 Q矩阵

 Q矩阵是一个4×4的矩阵,是经过立体校正得到的,如下所示:

  • Tx是两个相机之间的水平基线长度

  • cx、cy表示校正后的左相机主点坐标(与原来的左相机主点坐标不一致,这个是校正后的左相机主点坐标💥💥)

  • f为相机焦距

  • cx1为右相机的主点横坐标

1.3 三角测量原理

  双目立体成像的实现是基于视差的原理,其模型如下图所示,该模型是无畸变、对准、已测量好的完美标准立体实验台的数学模型。两台摄像机的像平面精确位于同一平面上,光轴严格平行,距离一定,焦距相同,并且左主点和右主点已经过校准。

如上图所示,OR和OT为两个相机的光心,B为两个相机光轴的距离(基线距离),f为镜头焦距,P点为场景中的一个实物点,P1、P2为P在两个图像中的像素点,Z为实物点P到相机的距离,W为图像的宽。由于三角形PP1P2与三角形POROT相似,那么P1P2/B=Z-f/Z,那么有:

P1P2=B-(XR-0.5W)-(0.5W-XT)=B-(XR-XT)

可以得Z=fB/(XR-XT),是不是很简单🍺🍺

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值