明确本实验的任务
照相机拍摄三维世界的物体时,相机镜头看到的是三维的世界坐标系,成像时为二维坐标系,这中间有个三维世界坐标向二维平面坐标转换的过程,而在转换的计算过程中,需要相机内部的标定矩阵来计算,本实验的任务便是计算出自己手机摄像头的内部参数。也就是求出
其中,fa,f为焦距参数,x0和y0是像主点偏移参数,s为畸变参数。
如何将世界坐标系转换为图像二维坐标系
上图是一个小孔成像模型。
C点表示camera centre,即相机的中心点,也是相机坐标系的中心点;
Z轴表示principal axis,即相机的主轴;
p点所在的平面表示image plane,即相机的像平面,也就是图片坐标系所在的二维平面;
p点表示principal point,即主点,主轴与像平面相交的点;
C点到 p点的距离,也就是右边图中的 f表示focal length,即相机的焦距;
像平面上的 x 和 y 坐标轴是与相机坐标系上的 X 和 Y坐标轴互相平行的;
相机坐标系是以 X, Y, Z(大写)三个轴组成的且原点在 C 点,度量值为米(m)
像平面坐标系是以 x,y(小写)两个轴组成的且原点在 p 点,度量值为米(m);
这是三维坐标系(X,Y,Z)转换到二维像平面坐标系(x,y)的矩阵计算.
通过上面,可以把相机坐标系转换到像平面坐标系,但是像平面坐标系和图像坐标系虽然在同一个平面上,但是原点并不是同一个,而目标是要转换到图像坐标系下,所以还需要一步操作,如下图:
如上图所示,其中主点 p 是像平面坐标系的原点,但在图像坐标系中的位置为(px,py),在这里,图形坐标系的原点是图片的左下角,所以可以得到:
(X,Y,Z)↦(fX/Z+px,fY/Z+py)
矩阵计算为
我们所需要求的相机内参为: