基于matlab的相机标定流程

一、Camera Calibrator工具包

在Matlab中打开App选中’Camera Calibrator’工具包;

工具包

打开之后选择’Add Images’,选中参与标定的图片,然后输入棋盘格的单格尺寸,我这里是5CM;

1

‘Image distortion’:我也没有搜到怎么选,好像以前的版本都没有这个,我认为一般选择Low,因为我感觉我自己的照片畸变不是很明显。

然后等待图片加载,这个过程matlab会自动剔除一些无效标定的图片(Rejected Images)

二、参数选择

参数选择

standard    标准相机(工业相机选这个)
fisheye     鱼眼相机

Options:
2 Coefficients表示计算2个畸变参数:k1/k2;
3 Coefficients表示计算3个畸变参数:k1/k2/k3。此设置仅适用于大视场相机

Skew:  假设X轴和Y轴不垂直。这意味着图像像素不是矩形的。大多数现代相机都没有这个问题,所以不选。
Tangential Distortion: 计算切向畸变,勾选。

选好参数后,点击Calibrate;

在Reprojection Errors 图中将误差大的图片删除;

操作方式:在表中双击最高的柱状线,跳转到对应图片后,在左边右击删除,删除一张就会重新计算一个结果,然后删除步骤知道达到我们需要的误差范围。

手动降低误差

最后点击右上角 Export Camera Parameters 导出到工作区即可。

标定数据导出

点击工作区的参数文件:
我们需要的是K相机内参,RadiaDistortion 径向畸变系数(k1,k2,k3), TangentialDistortion 切向畸变(p1,p2);一般情况我们的畸变系数统一放在一起,按照这个顺序:[k1,k2,p1,p2,k3](k3=0)

相机内参K是个3*3的矩阵,形式是:

相机内参

三、简单的验证方式与注意事项

验证:
相机的焦距f = fx * dx(横向像元尺寸,单位um)

注意事项:

  1. 调试好焦距,固定好镜头,使图像成像清晰;
  2. 选择合适的标定距离,一般选择棋盘格图案占相机拍的的图片大小2/3左右;
  3. 标定板图片需要在相机各个方位进行拍摄,不要在同一个位置获取多张图片(充满视场);
  4. 选定距离后,标定板的大小根据相机视野而定,一般选择棋盘格图案占相机拍的的图片大小2/3左右;
  5. 棋盘格精度尽可能高;

(PS:我标定出来的结果Cx是负数,询问师兄得知就是注意事项中的(2)没有做好,只在一个地方转着拍图导致的)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值