机器视觉学习笔记(9)——一个双目测距的简单实例

机器视觉学习笔记(9)——一个双目测距的简单实例

标签: 机器视觉

1.实例目标

学习OpenCV也一月有余了,遂想进行一个双目测距的简单实验,先解决从无到有,再解决锦上添花。

该实例背景较为简单,目标是测量红色盖子的长和宽,左摄像机原始图如下:

2.处理流程

Created with Raphaël 2.1.0 开始 载入相机标定参数 双目拍照 校正图片 多次二值化,形态学处理 拼接处理后的左右图片 Canny提取边缘 hough变换检测直线 求直线交点 整理交点在{pixel}下坐标和视差到pixMat worldMat = Q * pixMat 计算交点的实际坐标 求盒子的宽度 特征显示 结束

3.实例效果

  • 合成图
    机器视觉学习笔记(9)——一个双目测距的简单实例_第1张图片
    • 画出过左照片中交点的水平直线(绿色),发现对应点几乎在一条直线上,说明匹配度较高(点击查看原图)
  • 最终结果
    机器视觉学习笔记(9)——一个双目测距的简单实例_第2张图片
    • 红色盒子有一条棱,实际上检测的是棱上面的宽度,可以看出绿线并没有包含棱,结果较好
  • 距离检测结果

    • 实际距离是74.5mm左右,绝对检测误差为1.15mm,相对误差为1.5%,此时物体距离相机1134mm左右
    • 相机标定误差为0.3mm,所以测量结果还是比较准确的

4.总结

  • 本实例背景较为简单,只能适用于固定场合的零件检测,水果品质检测等
  • 基本的几何知识是必要的,例如求直线的交点,一元函数的线性回归
  • 双目测距基本就是这个流程
    • 载入图片(抓取一帧)
    • 校正图片
    • 区域剪裁
    • 角点识别
    • 立体匹配
    • 生成pixMat
    • 计算{world}坐标
    • 计算距离或者位姿

你可能感兴趣的:(机器视觉)