双目摄像头标定

本文介绍如何使用Matlab进行双目相机标定的过程,包括制作棋盘格图像、利用Matlab工具箱进行标定及如何将Matlab的标定结果转换为Opencv可用的参数。

本文选择使用Matlab进行标定。

标定过程分3步,接下来分步详细展开:

 

  1. 使用棋盘格生产图像
  2. 使用图像在Matlab中标定
  3. 使用标定系数

第一步:使用棋盘格生产图像 

  1. 打印棋盘格纸(这一步建议选择矩形棋盘格,否则容易因为原点不同出现标定偏差,本文版本放在文末了)
  2. 在目录下创建两个文件夹:frameRight、frameLeft
  3. 执行ImageCaptureFromCamera.py
  4. 分别使得棋盘在两个摄像头视野中的不同角度,按空格键创建图片

第二步:使用图像在Matlab中标定

  1. 参考Matlab官网介绍(https://cn.mathworks.com/help/vision/ug/stereo-camera-calibrator-app.html?s_tid=gn_loc_drop
  2. 打开Matlab的Stereo Camera Calibrate应用
  3. 添加图片,1选择Left目录,2选择Right目录,长度填入真实棋盘长度(18)mm
  4. 径向畸变选择3参数,选择切向畸变
  5. 开始校正
  6. 导出参数

第三步:使用标定系数

  1. 参考Opencv官网(https://docs.opencv.org/3.3.1/d9/d0c/group__calib3d.html#ga617b1685d4059c6040827800e72ad2b6
  2. 调用Opencv的stereoCalibrate()函数
  3. 参数对应关系如下:
    Matlab Opencv 
    RotationOfCamera2
    TranslationOfCamera2 
    CameraParameters1.IntrinsicMatrix left_camera_matrix
    CameraParameters1.RadialDistortionleft_distortion
    CameraParameters1.TangentialDistortionleft_distortion
    CameraParameters2.IntrinsicMatrixright_camera_matrix
    CameraParameters2.RadialDistortionright_distortion
    CameraParameters2.TangentialDistortionright_distortion
    注意,distortion:Opencv的参数是一个,Matlab有两个需要进行组合,组合方式如下:

    camera_matrix:Opencv的参数是由Matlab参数转置得到的。


    特别感谢:清华大学的董同学指导。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

具身小站

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值