相机标定主要是为了在机器视觉应用中确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型,这些几何模型参数就是相机参数,相机标定就是求这些参数的过程。
相机标定的主要过程为先对于图像进行提取角点的信息保存在vector里面,在利用函数对其进行精确化处理,并在图像中可以显示出来,之后通过calibrateCamera将三维世界的物理点和图像中的二维脚点的计算,获取旋转向量和位移向量,利用calibrateCamera的结果获取到内参数矩阵和畸变矩阵将三维空间的点重新投影计算,看投影结果和像素脚点的结果的偏差得到标定的评价,再利用initUndistortRectifyMap将获取到的畸变矩阵和内参数矩阵得到畸变映射参数,再重映射到图形上
calibrateCamera的原理就是一个线性方程组,棋盘格的点和图像上的点是几个解,代入后得出了矩阵参数。
内参数表示与相机自身特性相关的参数,比如相机的焦距、像素大小等,用内参矩阵表示:x,y方向的像素单位的密度,u,v表示图像中心和原点之间差多少像素具体的矩阵表示是上三角的形式 其中 f 为摄像机的焦距,单位一般是mm;dx,dy 为像元尺寸;u0,v0 为图像中心。
外参数主要表示图像原本在真实世界中的相关参数,包括旋转参数和平移参数,用矩阵表示,外参数更好的还原了真实世界中的图像是怎么平移旋转到图片中的。平移是矩阵相加,旋转和缩放则是矩阵相乘,通过这样的方式表示外参数。