基于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
友情链接:单目摄像头内参的含义的使用
文章来源: guo-pu.blog.csdn.net,作者:一颗小树x,版权归原作者所有,如需转载,请联系作者。
原文链接:guo-pu.blog.csdn.net/article/details/103074853
- 点赞
- 收藏
- 关注作者
评论(0)