opencv手册_OpenCV之单目测距实现

本文介绍了使用OpenCV实现单目测距的方法,通过简化的小孔成像模型,利用相似三角形原理计算物体距离。虽然精度低于双目测距,但在精度要求不高和成本有限的情况下,单目测距是可行的选择。文中还提供了实际测试数据,展示了测距精度与实际距离的关系,并给出了代码实现。
摘要由CSDN通过智能技术生成

最近要做一个小项目,要完成相机的测距实现,最先考虑的是三角激光测距,但是实现起来太麻烦了,基本要搭一个简易的激光测距雷达...然后是双目测距,然而一个便宜的双目工业相机也要四五百,而且以前也没接触过双目测距...

      于是就想试试单目测距的效果怎么样,通过参考网络上的各种资料,加上以前玩过三角激光测距,所以也算比较顺利的写出来个简易实现单目测距的代码,精度还算差强人意。

原理大概是这样的 :

这是三维情况下的小孔成像模型 :                             44f4e50cc2cbde9faa9c22b09c17e1ad.png

我们把它简化成更为直观的二维平面模型(渣画勿喷...):

                                                79b5e2be2b2eecbedb9be507a1c78609.png

       这里要说明下,这是一个典型的小孔成像模型,与单目相机的成像原理类似。

       中间通过红蓝的垂线是相机的主光轴,d是被测物体至镜头的距离,f为相机镜头的焦距,w为被测物体的实际宽度(高度),w'为物体在成像平面(感光元件)上的宽度(高度)。 

       根据相似三角形公式可得:f / d = w' / w

       由于f(相机镜头焦距)一般都是已知参数(买相机的时候总要选镜头焦距吧...),即使不清楚也可以通过计算得出,这里就不具体说了,w(实际物体宽或高)则是可以实际测得的常量。           

       重点说下怎么通过计算得出w'(物像宽或高)。举个栗子,假设你手上的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值