zoukankan      html  css  js  c++  java
  • Matlab2015 双目相机自动标定

    标定步骤

    调出标定工具箱

    在命令行输入stereoCameraCalibrator,出现如下界面:

     

    勾选相应的选项

    然后将上面的“Skew”、“Tangential Distortion”以及“3 Coefficients”等选项选上,将“2 Coefficients”选项去掉,如下:

     

    载入图像

    然后点击添加图像,出现如下界面:

    Camera1代表左摄像头,Camera2代表右摄像头,分别选择存放着左右图像的文件夹,需要特别注意的是棋盘格的边长应该根据打印的实际大小填写,单位可以选择

    然后点击OK,程序会自动检测采集的图像到底有多少可以使用,可以说MATLAB2015的这个工具十分挑剔,如果角度不好的话,将使用不了,因此在采集图像时,最好多的采集一些。(此处只是为了说明标定步骤,所以使用的图像较少)。

     

    标定

    点击按钮,开始标定:

     

    校准

    从下图可以看到,平均的标定误差以及标定过程中误差较大的的图像对。

     

    点击选择不想接受的误差直方图,可以直接在左边的图像对中找到对应的图像,右键选择“Remove and Recalibrate”:

     

           可以重复上述步骤,直到认为误差满足标定需求为止。

    导出参数

    点击选择Export camera parameters, 并点击“OK”。

     

    参数读取

    标定结束后,会得到如下标定参数:

     

    CameraParameters1与CameraParameters2为左右摄像头的单独标定参数。

    两个摄像头的平移和旋转参数

    stereoParams.TranslationOfCamera2:相机2相对于相机1的偏移矩阵,可以直接使用。 

    stereoParams.RotationOfCamera2:相机2相对于相机1的旋转矩阵,需要转置之后才能使用。

    摄像机内参矩阵

    CameraParameters1与CameraParameters2中包含如下文件:

     

    IntrinsicMatrix存放的是摄像头的内参,只与摄像机的内部结构有关,需要先转置再使用。

    畸变参数

    RadialDistortion:径向畸变,摄像头由于光学透镜的特性使得成像存在着径向畸变,可由K1,K2,K3确定。

    TangentialDistortion:切向畸变,由于装配方面的误差,传感器与光学镜头之间并非完全平行,因此成像存在切向畸变,可由两个参数P1,P2确定。

    使用时,需要注意参数的排放顺序,即K1K2P1P2K3。切记不可弄错,否则后续的立体匹配会出现很大的偏差。

    作者:Young
    联系:chayliu@126.com
    签名:天道酬勤 厚积薄发

    ---------------------------------------------------------

  • 相关阅读:
    测试驱动开发的意义何在
    Web自动化测试模式page object的小利器:gizmo
    在NANT使用Nunit2标签运行Nunit测试
    小试牛刀 Ruby on Rails
    敏捷回顾会议的思考
    ThoughtWorks技术校园行第二波 课程资料 CleanCode&DirtyCode
    从git merge 和 git rebase想到……
    Ruby中的深浅拷贝
    NUnit Extension小介绍
    如何写好的测试呢?
  • 原文地址:https://www.cnblogs.com/chay/p/7551151.html
Copyright © 2011-2022 走看看