三角测量—立体视觉中重建三维点坐标公式推导(有源码)

三角测量—立体视觉中重建三维点坐标公式推导(有源码)

通常在立体视觉三维测量的应用开发中,需要由左、右图像对应点计算出该点在相机坐标系下的坐标。在opencv中,提供了triangulatePoints函数用于计算立体矫正模式下的三维坐标的计算方法,而没有提供非矫正模式下的计算方法。本文将介绍非矫正模式下如何由图像对应点计算对应的三维点坐标。
关于针孔相机模型的讲解已有太多博文描述了,本文对它不做太多讲解,如果有不懂的朋友可以搜索其他相关博文。

相机内参矩阵

相机内参矩阵包括:

其中,fx,fy为焦距,x0,y0为主点坐标。 在标定好双目相机后,首先需要对图像进行去畸变,为后期计算相机坐标系下三维点坐标排除非线性因素。 去畸变完成后,相机的成像模型就可以简化为针孔成像模型,利用光学三角法建立线性方程组即可计算出空间坐标,以下为推导过程。
针孔成像过程

针孔成像过程描述的是世界坐标系到图像坐标系的转换过程,该过程中包含以下几个坐标系的转换。
1)世界坐标系–>相机坐标系
假设世界坐标系中一点的坐标为(Xw,Yw,Zw),经刚体变换后转到相机坐标系下:

2)相机坐标系–>成像平面坐标系

其中,s[u,v,1]为图像坐标系下的齐次坐标,[Xc,Yc,Zc,1]为相机坐标系下的坐标。

3)成像平面坐标系–>图像坐标系;

式中,[u,v,1]为成像平面坐标系下的坐标,sx,sy为像元在x,y方向上的像元大小,[x,y]为图像坐标系下的坐标。 因此,最终可以得到小孔成像模型的成像公式为:
立体视觉系统中计算三维点坐标(针孔模型)

由前面的推导可知,对于左、右相机分别有:

其中:
式中,flx,fly为左相机焦距,ul,vl为左相机主点坐标;frx,fry为右相机焦距,ur,vr为右相机主点坐标。 因此,综合左右两相机成像公式,可得:
对上面两矩阵方程进行化简,可得到如下方程组:
采用最小二乘法即可计算出世界点坐标。 下图为重建棋盘格标定板角点的三维点坐标。

源码下载方法:关注下方微信公众号回复关键字“triangulate”即可下载


另外,关于以上研究方向的任何问题都可以到我的知识星球进行提问,我将给大家满意的回答 !!!!

3D视觉QQ群:1012179080。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值