基于Matlab工具箱进行单目摄像头标定

实验环境:matlab2016 

准备材料:单目摄像头、定标板、摄像头拍下定标板的图片

本博客带大家实际动手,再讲单目摄像头标定原理。

 

准备标定板

标定的开始阶段最需要用到的标定板,可以直接从opencv官网上能下载到: (注意:这里是7*10的定标板,推荐奇*偶的)
http://docs.opencv.org/2.4/_downloads/pattern.png

具体如下:

 

然后,建议固定到平面物体上,方便等下拍照,降低误差。(然后用尺子量一下正方形格子的实际长度,如:25mm)

 

准备图片

使用摄像头拍下定标板:(拍30张左右就可以了)

 

进行摄像头定标

打开matlab,点击应用程序,点击小箭头来显示下拉列表

 

找到Camera Calibrator

 

添加图片:

 

选择刚才拍好的图片:

 

输入正方形格子的实际长度

 

这里显示一共有28张图片,成功添加了19张,其余的舍弃掉(图片拍的不好)

然后可以看到自动标出了x,y轴,和圈出了方角。下一步点击Calibrator

 

有两个点值得留意的:

1)红色框框中的,Overal Mean Error (这个值要尽量降低)

2)蓝色框框中的,是可以看出每一幅图片到相机的距离(和图片当时的姿态)

 

把和平均值相差较大的图片删除掉:

 

 

最后导出摄像头的参数

点击确定

 

来到首页查看摄像头的参数

 

 

到这里,单目摄像头的内参就成功获取啦,恭喜呀。

 

摄像头标定意义

     在图像测量及机器视觉应用中,为确定空间物体表面某点的三维几何位置与其图像中对应点之间的相互关系,必须建立相机成像的几何模型,这些几何模型参数就是相机参数。

即:找出三维空间与二维图像的对应关系。

     在大多数条件下这些参数必须通过实验与计算才能得到,这个求解参数的过程就称之为相机标定。相机参数的标定是非常关键的环节,其标定结果的精度将直接影响相机工作产生结果的准确性。

 

坐标系

在这里总共涉及到四个坐标系的变化。这四个坐标系分别是:

(1)像素坐标系;(2)成像坐标系;(3)相机坐标系;(4)世界坐标系。

1.像素坐标系

   像素坐标系是一个直角坐标系,其定义方式是:原点位于图像的左上角,轴向右与轴平行,轴向下与轴平行,其反映了相机CCD/CMOS芯片中像素的排列情况,在像素坐标系中单位是像素。像素坐标系与成像平面之间,相差了一个缩放和一个原点的平移。

 

2.成像坐标系

成像坐标系是用来表示图像的物理位置的坐标系,则此坐标系中的坐标表示图像上点的位置坐标。对应的成像坐标系中的物理坐标的单位是毫米。

 

3.相机坐标系

相机坐标系是一个三维直角坐标系,其坐标轴为,原点位于镜头光心处,其中轴称为相机的光轴,垂直于图像平面,轴平行于成像坐标系的轴,轴平行于成像坐标系的轴。

如图所示:O为摄像机光心,Zc为摄像机的光轴,和图像平面垂直;OO1为摄像机焦距;

相机标定之四个坐标系及其关系

 

相机坐标系与图像坐标系的关系:

如图所示:

相机标定之四个坐标系及其关系

 

4.世界坐标系

世界坐标系作为一个基准,选择世界坐标系没有固定的方式,具体情况具体来考虑。其可以用来描述待测物体与相机的相对位置关系。其坐标轴为。

世界坐标系是为了描述相机的位置而被引入的,任何维的旋转可以表示为坐标向量与合适的方阵的乘积。

平移向量是第一个坐标原点与第二个坐标原点的偏移量;

在世界坐标系下,有两个重要的参数:旋转矩阵R 和 平移向量T

相机标定之四个坐标系及其关系

相机标定之四个坐标系及其关系

 

2.坐标系与坐标系之间的关系


1)世界坐标系与相机坐标系

设在相机坐标系下有一个点,它的坐标为。在世界坐标系下对应的坐标为。

因此,世界坐标系与相机坐标系中的坐标存在如下的关系:

其中,是旋转矩阵,为3x3的正交单位矩阵;t是一个平移矩阵,。

同时这里用了一个数学技巧(《视觉SLAM14讲》第43页):我们在一个三维向量的末尾添加1,将其变成了四维向量,称为齐次坐标。其中称为外参数矩阵。

2)像素坐标系与成像坐标系

在二维成像平面坐标系中,相机光轴与图像平面的交点即为原点,该点称为图像的主点,如果我们不去考虑畸变,图像的主点就是图像的中心点,但是由于相机系统加工,外力作用等原因会产生一定的偏移。设主点在像素坐标系中的坐标为,则像素坐标系与成像坐标系对应关系如下:

 

希望对你有帮助。

坐标原理参考https://jingyan.baidu.com/article/63f2362826ea1c0208ab3dec.html

友情链接:单目摄像头内参的含义的使用

 

 

 

 

 

 

 

 

 

 

 

 

Matlab进行单目摄像头标定的步骤如下: 1. 下载并安装相机标定工具包。你可以从以下链接下载工具包:\[1\]\[2\]。下载完成后,将工具包解压,并将其路径添加至Matlab。 2. 将Matlab的工作路径改变至你存放标定板拍摄图片的文件夹。 3. 在Matlab命令行中输入"calib_gui",然后选择标准模式。 4. 在Image names中输入图片的前缀,比如"Img"。 5. 选择"Read images",然后点击"Extract grid corners"来提取角点。wintx和winty可以使用默认值。 6. 选择自动格子计数(默认回车即可),然后会弹出第一幅图片让你用鼠标选定四个原点。 7. 输入真实的棋盘格宽度和高度,比如前面设置的20mm。 8. 重复以上步骤,直到所有图片都被读入。 9. 点击工具箱上的"Calibration",然后会出现内参数结果。 通过以上步骤,你可以在Matlab进行单目摄像头标定。这样你就可以获得相机的内参和外参,从而进行后续的相机位姿变换和成像变换矩阵的解算。\[1\]\[3\] #### 引用[.reference_title] - *1* *3* [单目相机的标定matlab)](https://blog.csdn.net/luoweidashi/article/details/129717738)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [MATLAB+单目摄像头标定+Calibration 工具箱](https://blog.csdn.net/qq_39642029/article/details/121622077)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一颗小树x

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

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

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

打赏作者

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

抵扣说明:

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

余额充值