相机标定的原理以及实现
本文参考文档
原理部分参考:https://www.cnblogs.com/Jessica-jie/p/6596450.html
代码部分参考:1、https://www.cnblogs.com/wildbloom/p/8320351.html ;
2、https://blog.youkuaiyun.com/firemicrocosm/article/details/48594897#
1、相机标定原理
1.1、基本原理
相机标定(Camera calibration)简单来说是从世界坐标系换到图像坐标系的过程,也就是求最终的投影矩阵的过程。
1、基本的坐标系:
- 世界坐标系
- 相机坐标系
- 成像平面坐标系
- 像素坐标系
2、标定步骤:
(1)从世界坐标系转化为相机坐标系
(2)从相机坐标系转化为平面坐标系
3、投影矩阵:P=K [ R | t ] 是一个3×4矩阵,混合了内参和外参而成。
1.2、相关知识
1、相机模型
这是一个小孔成像的模型,其中:
[1]O点表示camera centre,即相机的中心点,也是相机坐标系的中心点;
[2]z轴表示principal axis,即相机的主轴;
[3]q点所在的平面表示image plane,即相机的像平面,也就是图片坐标系所在的二维平面;
[4]O1点表示principal point,即主点,主轴与像平面相交的点;
[5]O点到O1点的距离,也就是右边图中的f,即相机的焦距;
[6]像平面上的x和y坐标轴是与相机坐标系上的X和Y坐标轴互相平行的;
[7]相机坐标系是以X,Y,Z(大写)三个轴组成的且原点在O点,度量值为米(m);
[8]像平面坐标系是以x,y(小写)两个轴组成的且原点在O1点,度量值为米(m);
[9]像素坐标系一般指图片相对坐标系,在这里可以认为和像平面坐标系在一个平面上,不过原点是在图片的角上,而且度量值为像素的个数(pixel);
2、相机坐标系→成像平面坐标系
[1]以O点为原点建立摄像机坐标系。点Q(X,Y,Z)为摄像机坐标系空间中的一点,该点被光线投影到图像平面上的q(x,y,f)点。
图像平面与光轴z轴垂直,和投影中心距离为f (f是相机的焦距)。按照三角比例关系可以得出:
x/f = X/Z y/f = Y/Z ,即 x = fX/Z y = fY/Z
以上将坐标为(X,Y,Z)的Q点映射到投影平面上坐标为(x,y)的q点的过程称作投影变换。
上述Q点到q点的变换关系用3*3的矩阵可表示为:q = MQ ,其中
最终得出透视投影变换矩