球体的双目视觉定位(matlab,附代码)

球体的双目视觉定位(matlab,附代码)

标签(空格分隔): 机器视觉


引言

双目视觉定位是我们的一个课程设计,最近刚做完,拿出来与大家分享一下,实验的目的是在拍摄的照片中识别球体,并求出该球体到相机的实际距离吗,我们要求需要用matlab,但是matlab调用双目摄像头(一个USB口)却老是只能调用双目摄像头中的一个,但是利用Python的OpenCV库却可以同时调用两个,因此我们选用了Python用于拍摄图片。

1.基本流程

1701224-20190702105111352-162238449.png

备注:因为根据得出的视差图识别出圆球略困难,我们没有采用视差图深度图去得出球体的深度,而是直接利用校正后的图片像素差,代入公式直接求出距离。

1.相机标定

首先我们要知道在摄像机模型中,一般要涉及四种坐标系:世界坐标系、摄像机坐标系、图像坐标系、像素坐标系。相机标定的作用可以理解为找到一种将世界坐标系和图像坐标系之间的变换关系。
具体标定可以参考这篇文章:双目视觉相机标定

  • 1.像素坐标系(u,v):
    顾名思义,每一点都是一个像素,原点通常设置在图像的左上角处,点的横纵坐标分别代表相应的像素在图像中位于第几行第几列;
  • 2.图像坐标系(x,y):
    将原点设置在相机光轴与图像平面的交点处,横轴、纵轴与像素坐标系的横轴、纵轴平行; 图像平面的中心为坐标原点,为了描述成像过程中物体从相机坐标系到图像坐标系的投影透射关系而引入,方便进一步得到像素坐标系下的坐标。图像坐标系是用物理单位(例如毫米)表示像素在图像中的位置。
  • 3.相机坐标系(x,y,z):
    摄像机站在自己角度上衡量的物体的坐标系。摄像机坐标系的原点在摄像机的光心上,z轴与摄像机光轴平行。它是与拍摄物体发生联系的桥头堡,世界坐标系下的物体需先经历刚体变化转到摄像机坐标系,然后在和图像坐标系发生关系。它是图像坐标与世界坐标之间发生关系的纽带,沟通了世界上最远的距离。单位为长度单位如mm。
  • 4.世界坐标系 (Xw,Yw,Zw):
    物体在真实世界中的坐标。

具体标定利用matlab的工具箱,步骤如下:
1.打印标定板:
1701224-20190702105811839-2033738506.jpg

2.拿着标定板拍照(拍照代码在文末),效果图如图:
1701224-20190702105848999-519378164.jpg

3.将上面的照片按left,right分为两组,放到两个文件夹中,打开matlab进行标定。在命令行窗口输入stereoCameraCalibrator,出现如下界面:
1701224-20190702110257243-428419155.jpg

4.然后将上面的“Skew”、“Tangential Distortion”以及“2 Coefficients”等选项选上,将“3 Coefficients”选项去掉,如下:
1701224-20190702105951990-1833673021.jpg

5.载入图像:
91432cd5f4a1ee8ff31b5f93b35252bf243.jpg
备注:标定板打印的标准一点,图中的25是小方格边长,方格!边长!根据你的实际情况修改。

6.点击按钮进行标定:

  • 13
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值