OpenCV单目平面测距

单目测距广泛运用于车辆道路障碍物识别、机器人导航等领域,是计算机视觉中的重要技术之一。

众所周知的是,图像中的像素坐标只提供了二维信息,而空间坐标是三维信息,因此只能让空间坐标中的一维为0或固定值,才可以测得平面距离信息,因此单目测距主要是针对空间中的平面坐标。

摄像机模型如图1所示:

图1 摄像机模型

 

由摄像机模型,可知

                                                                   

令Zw=0, 则摄像机和世界坐标系的位姿关系如下:


                                                                      

由式(1)、式(2)可得:

                                                       

Zc可看为缩放因子, 因此式子可转为

 

      因此只要知道单应性矩阵H,就可知道图像点和空间平面之间的关系,而这个求解过程,OpenCV已经给出了相应的求解函数cvGetPerspectiveTransform,同时也给出了转换函数cvWarpPerspective。

标定实验:

由于资金紧缺,没有车和机器人,而幸好的是这些只是应用平台,算法独立于平台,因此实际标定只需要一个摄像机即可。

标定图像中的正方形为5cm  X  5cm, 如图2所示:

图2 标定图像

 

正方形的底部中心与地板砖的线对齐重合,将其对应到图像底部中心,将它设为原点,用50像素对应5cm的边,即10:1 ,透视变换效果如图3所示:


                                                                           图3透视变换效果图

测距试验:

      求地板砖线到本子的距离,测试图如图4所示:

图4  测试图

       透视效果图, 如图5所示:

图5 透视效果图

       测得透视效果图线到本子的距离为210像素,即21cm, 与测试图中的尺子所测距离 一致。

      由此完成OpenCV单目平面测距的功能,此功能可应用于各种平面测距的应用。

      对于OpenCV求解单应性矩阵,请看下一章OpenCV透视变换源码解析。

 

 

 


  • 9
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 23
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值