原理图示

原理很简单,利用了相似三角形计算距离,所以双目测距的主要任务在于前期摄像头的定标、双目图像点的特征匹配上。

常用做法具体步骤

1.双目定标和校正,获得摄像头的参数矩阵

摄像头定标一般都需要一个放在摄像头前的特制的标定参照物(棋盘纸),摄像头获取该物体的图像,并由此计算摄像头的内外参数。标定参照物上的每一个特征点相对于世界坐标系的位置在制作时应精确测定,世界坐标系可选为参照物的物体坐标系。在得到这些已知点在图像上的投影位置后,可计算出摄像头的内外参数。

如上公式所示,摄像头由于光学透镜的特性使得成像存在着径向畸变,可由三个参数k1,k2,k3确定;由于装配方面的误差,传感器与光学镜头之间并非完全平行,因此成像存在切向畸变,可由两个参数p1,p2确定。

具体操作:

cvStereoRectify 执行双目校正

initUndistortRectifyMap 分别生成两个图像校正所需的像素映射矩阵

cvremap 分别对两个图像进行校正

2.立体匹配,获得视差图:

具体操作:

预处理: 图像归一化,减少亮度差别,增强纹理

stereoBM生成视差图

匹配过程: 滑动sad窗口,沿着水平线进行匹配搜索,由于校正后左右图片平行,左图的特征可以在右图对应行找到最佳匹配

再过滤: 去除坏的匹配点 通过uniquenessratio

输出视差图disparity:如果左右匹配点比较稠密,匹配点多,得到的图像与原图相似度比较大, 如果匹配点比较稀疏,得到的点与原图 相似度比较小

3.得出测距:

根据提取的特征点上用上述双目测距的相似三角算法得出距离。

小车中的实际应用

SIFT特征提取算法对左右图像点提取特征

knnMatch取k=2找到左右图片最佳匹配

再过滤去除坏的匹配点

对于剩下的点使用相似三角形计算公式得到图片各点景深标在图上

最终小车避障可根据其中少数点进行判断,或者取均值。

python opencv双目测距_OpenCV实现双目测距相关推荐

  1. python双目三维重建_OpenCV+OpenGL 双目立体视觉三维重建

    0.绪论 这篇文章主要为了研究双目立体视觉的最终目标--三维重建,系统的介绍了三维重建的整体步骤.双目立体视觉的整体流程包括:图像获取,摄像机标定,特征提取(稠密匹配中这一步可以省略),立体匹配,三维 ...

  2. python opencv 录制视频_OpenCV Python 录制视频

    学到实用OpenCV调用笔记本电脑的摄像头,并录制视频保存到本地硬盘的时候,出现了一点故障,那就是获取到的文件总是为0KB.经过一番查找,终于找到了解决办法. 调用摄像头 调用摄像头作为本实验的基础是 ...

  3. python opencv 识别角度_OpenCV入门之获取图像的旋转角度

    在我们的日常生活中,所碰到的图像往往都有一定的倾斜.那么,如何用OpenCV来获取图像的旋转角度呢? 我们以下面的图片为例,简单介绍如何用OpenCV来获取图像的旋转角度. 可以看到,该图像存在着许多 ...

  4. python opencv报错_OpenCV in Python 入门问题,python报错 -问答-阿里云开发者社区-阿里云...

    OpenCV是Intel®开源计算机视觉库.它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法. 在这篇文章(译自 http://glowingpython.bl ...

  5. python opencv压缩图片_OpenCV Python 缩放图片

    By 凌顺 2019年9月12日 本示例使用的OpenCV版本是:4.1.1 运行Python的编辑器:Jupyter notebook 示例目的 使用OpneCV的cv2.resize()函数对图片 ...

  6. python opencv轮廓检测_OpenCV 轮廓检测的实现方法

    轮廓概述 轮廓可以简单认为成将连续的点(连着边界)连在一起的曲线,具有相同的颜色或者灰度.轮廓在形状分析和物体的检测和识别中很有用. 为了更加准确,要使用二值化图像.在寻找轮廓之前,要进行阈值化处理或 ...

  7. python opencv 轮廓检测_opencv之轮廓检测与处理

    查找图像的轮廓在图像处理及应用中扮演着重要的角色. opencv中 查找轮廓的函数提供的是cv::findContours() 把查找的轮廓划到图像上cv::drawContours() 1.轮廓的查 ...

  8. python opencv resize函数_OpenCV尺寸调整函数resize

    void resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation ...

  9. 双目三维重建系统(双目标定+立体校正+双目测距+点云显示)Python

    双目三维重建系统(双目标定+立体校正+双目测距+点云显示)Python 目录 双目三维重建系统(双目标定+立体校正+双目测距+点云显示)Python 1.项目结构 2. Environment 3.双 ...

  10. 双目相机标定以及立体测距原理及OpenCV实现

    转载 双目相机标定以及立体测距原理及OpenCV实现 http://blog.csdn.net/dcrmg/article/details/52986522?locationNum=15&fp ...

最新文章

  1. IIS发布ASP.NET应用常见错误及解决办法
  2. idea添加scala环境_idea怎么在线安装scala并且启动'
  3. windowXP 任务计划无法启动 错误代码:0X80041315
  4. mysql mha reference_MySQL MHA配置常见问题
  5. 计算机机房新风机管道布置要求,新风系统管道布置—新风系统管道布置连接方法介绍...
  6. vue .prop修饰符
  7. 6.1倒计时锁(Countdown Latches)
  8. 【渝粤教育】广东开放大学 生产与运作管理 形成性考核 (36)
  9. 进销存管理系统基本功能
  10. 电脑如何显示文件后缀名
  11. 将Ubuntu装入移动硬盘
  12. 算法训练 幸运的店家
  13. 兼容IE8的文件下载,解决IE下载文本和图片直接打开问题
  14. LinuxProbe 0x13 网站服务程序、SELinux安全子系统、个人用户主页功能、虚拟网站主机功能
  15. 【Linux入门指北】Linux实验综合训练
  16. 爆炸的符卡洋洋洒洒题解报告
  17. 初学者学习深度学习,不得不会的Google Colab基本操作
  18. 2015-10-30-01-Windows批处理编写心得
  19. 神经元的结构图手绘,神经元图片手绘图
  20. UTS 在安卓系统上的开发应用

热门文章

  1. Android应用开发详解
  2. 从VLP-16讲起的激光雷达原理(一)概念篇
  3. “向死而生”的微信视频号,逆风翻盘的2020
  4. OSI网络七层协议与TCPIP协议
  5. ensp的下载与安装教程
  6. Cannot connect to the Maven process. Try again later. If the problem persists, check the Maven Impor
  7. 苗木损耗1.1用计算机怎么算,04园林绿化定额说明
  8. python画图如何调整图例位置_python中图例的位置怎么手动调整
  9. 对recv函数的一些理解
  10. 【源码】色度坐标计算器:计算CIE坐标并绘制