应用场景
在图像测量过程以及机器视觉应用中,利用摄像机所拍摄到的图像来还原空间中的物体。
基本思路
假设摄像机所拍摄到的图像与三维空间中的物体之间存在以下一种简单的线性关系:[像]=M[物],这里,矩阵M可以看成是摄像机成像的几何模型。 M中的参数就是摄像机参数。通常,这些参数是要通过实验与计算来得到的。这个求解参数的过程就称为摄像机标定。
。其中,待求解的摄像头参数分为两部分:
- 内参数:镜头固有参数。such as, its focal length, skew, distortion, and image center. 镜头中心位置 (Cx,Cy) 和 焦距大小 fx,fy。均用像素长度表达。
- 外参数:摄像机位置参数,物体所处的现实世界坐标系对摄像机坐标系的刚性变换,可表达为旋转R 和 平移的结合 [R t]。
在现实成像过程中,先对现实世界中的3D物体依外参数做刚性变换,转换到摄像机3D坐标系。再依内参数做投影变换,得到二维图像。
用矩阵表达就是:
这是理想条件下的成像,并未考虑透镜畸变(lens distortion)。考虑实际成像中必然会发生的透镜畸变–径向畸变和切向畸变,还要再对图像坐标进行修正。
程序实现
OpenCV 版
double calibrateCamera(InputArrayOfArrays objectPoints, InputArrayOfArrays imagePoints, Size imageSize, InputOutputArray cameraMatrix, InputOutputArray distCoeffs, OutputArrayOfArrays rvecs, OutputArrayOfArrays tvecs, int flags=0, TermCriteria criteria=TermCriteria( TermCriteria::COUNT+TermCriteri