基于Matlab的双目相机标定

第一步,打开matlab

输入stereoCameraCalibrator ,进入工具箱

基于Matlab的双目相机标定_第1张图片

 第二步:点击add images

基于Matlab的双目相机标定_第2张图片

第三步:添加图片路径,并且修改尺寸(根据格子边长)

基于Matlab的双目相机标定_第3张图片

基于Matlab的双目相机标定_第4张图片

工具箱会弹窗告诉你一共识别到多少组照片,多少组可以用,多少组被工具箱拒绝了。

我这里一共20张图片,都可以

基于Matlab的双目相机标定_第5张图片 第四步:点击

基于Matlab的双目相机标定_第6张图片

运行完成之后会在界面下方出现如下窗口: 

基于Matlab的双目相机标定_第7张图片

从图中可以看到,平均的标定误差以及标定过程中误差较大的的图像对,以及图片的位置信息。针对左侧误差比较大的图片,我们可以选择误差大的照片进行删除,删除到误差满足要求为止。左键或右键点击柱状图会跳转到照片,右键remove选中照片即可。

基于Matlab的双目相机标定_第8张图片

第五步:导出参数

基于Matlab的双目相机标定_第9张图片

 回到命令行窗口:

基于Matlab的双目相机标定_第10张图片

CameraParameters1 与 CameraParameters2 为左右摄像头的内部参数,RotationOfCamera2 与 TranslationOfCamera2 为两个摄像头的旋转、平移参数。

平移参数可直接使用;但旋转参数需进行转置才能使用。

之后我们点击工作区:

基于Matlab的双目相机标定_第11张图片

点击stereoParams查看参数,我们以左相机为例,查看所需的相机参数。

点击CameraParameters1,

IntrinsicMatrix 存放的是摄像头的内部参数

RadialDistortion 和 TangentialDistortion 中存放的是畸变参数(径向畸变和切向畸变)

双击IntrinsicMatrix 得到如下参数 

基于Matlab的双目相机标定_第12张图片

 基于Matlab的双目相机标定_第13张图片

基于Matlab的双目相机标定_第14张图片

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

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

 在Opencv的使用中,我们的使用顺序是K1、K2、P1、P2、K3(K3的默认值是0)千万要注意顺序不要弄错! 

这是全部参数:

Matlab标定双目相机

stereoParams.CameraParameters1  (左相机)

IntrinsicMatrix(内参矩阵)    要进行转置再用!!!!!!!!

713.287455177324        0                0
0       767.060628932890                0
652.499479466471      308.120284277132         1

TangentialDistortion  切向畸变
p1        p2
0    0

RadialDistortion  径向畸变
k1                                  k2         k3(默认为0)
0.218399217500876    -0.320624863045497       0

在Opencv的使用中,我们的使用顺序是K1、K2、P1、P2、K3(K3的默认值是0) 
0.218399217500876    -0.320624863045497       0         0        0

stereoParams.CameraParameters2(右相机)

IntrinsicMatrix
709.894751213518    0    0
0    766.679151125009       0
601.528476621381     310.526535201931        1


TangentialDistortion   切向畸变
p1    p2       0       0

RadialDistortion     经向畸变
 k1   k2   k3       0.164627774965088        -0.235231392507558       0

RotationOfCamera2 (为两个摄像头的旋转参数) 
0.999763294754995    -4.98399092969342e-05    -0.0217566536172371
0.000177637159851697    0.999982743613643    0.00587204563770117
0.0217559855137944    -0.00587452048385626    0.999746051306735

TranslationOfCamera2 (平移参数)。需注意!平移参数可以直接在Opencv中使用,而旋转参数需要进行转置之后使用,与上面转置同理。 
-59.7275589924576    -0.0352284664835065    -1.03214800789663
 

你可能感兴趣的:(日常学习,matlab,开发语言)