之前写过一篇文章怎么使用Opencv进行相机标定,但没有详叙原理,这里从原理上面入手,分析下标定算法原理。
1:相机成像原理
首先了解四个坐标系:
像素平面坐标系(u,v)、像平面坐标系(图像物理坐标第(x,y)、相机坐标系(Xc,Yc,Zc)和世界坐标系(Xw,Yw,Zw)
图像像素坐标系(u,v)是以图像左上角为原点,以像素为单位的直角坐标系,u,v表示像点所在的行和列。
图像物理坐标系(x,y)是以光轴与像平面的交点为原点,以毫米为单位的直角坐标系。其x,y轴分别与图像像素的u,v轴平行。
像素坐标与像平面坐标系之间的关系 :
dx,dy表示每个像元的长宽,u0和v0表示光轴与像平面的交点。
用齐次坐标与矩阵形式可表示为:
相机坐标系 :
相机坐标系的原点为镜头光心;Zc轴与光轴重合,与成像面垂直,且取摄影方向为正方向;Xc、Yc轴与图像物理坐标系的x、y轴平行;图中Oco为相机焦距f。
所以在相机坐标系空间某点M(Xc,Yc,Zc)与其在图像上投影m(x,y)之间有如下的比例关系:
齐次坐标和矩阵形式表示上述透视投影关系:
结合上面的像素平面与图像平面的关系,可得空间点M与像点m的像素坐标之