环境:opencv2.4.9 ,vs2013
方法:张正友标定法
github地址:
https://github.com/xsfmg/findslope
标定
通过相机的标定得到相机内参和外参和畸变系数。
内参矩阵
- 一般用A或者M1表示。内参矩阵含有相机的固有参数(fx,fy,Cx,Cy),fx,fy(单位:像素)与dx,dy(x,y方向一个像素的物理尺寸,单位:毫米/像素)和焦距f(单位:毫米)有关。 Cx,Cy为图像原点相对于光心成像点的纵横偏移量(单位:像素)。
- 相机坐标系转图像坐标系
- 3D恢复
外参矩阵
- 一般用[R|T]表示,R表示旋转矩阵,T为平移矩阵。不同的棋盘图对应不同的旋转矩阵和平移矩阵。因为每一副图像对应的世界坐标系相对应与相机坐标系是不一样的。
- 世界坐标系转相机坐标系
- 图像校正(倾斜,平移)
畸变系数
- 一般用[p1,p2,p3,k1,k2]表示,p1,p2,p3是相机的径向畸变系数,k1,k2是相机的切向畸变系数。
- 图像矫正(T型畸变,鱼眼图像等)
标定步骤
- 拍摄棋盘图,越多越好,一般10张就可以,10张必须符合所有角点都能检测到才算合格棋盘图。
- 标定程序计算并保存相机内参和外参和畸变系数矩阵,
- 运用三个矩阵解决实际问题。只要相机的角度和焦距固定,位置可以移动,那么内参矩阵和畸变系数是不会改变的。
注意:
单目标定的外参矩阵,运用只能对应相应的棋盘的世界坐标系。
双目标定可以确定唯一的外参矩阵。
坐标系
相机坐标系
以光心为相机坐标系的原点,以平行于图像的x和y方向为Xc轴和Yc轴,Zc轴和光轴平行,Xc,Yc,Zc互相垂直,单位是长度单位.
图像物理坐标系
可以认为是相机坐标系z轴方向的投影图。以主光轴和图像平面交点为坐标原点,注意:不一定是图像的中心点,根据Cx和Cy知道偏移了多少像素。图像物理坐标系x和y方向单位是长度单位。
图像坐标系
以主光轴和图像平面交点为坐标原点,x和y方向单位是像素单位。
世界坐标系
物体在真实世界中的坐标,比如黑白棋盘格的世界坐标系原点定在第一个棋盘格的顶点,Xw,Yw,Zw互相垂直,Zw方向就是垂直于棋盘格面板的方向。可见世界坐标系是随着物体的大小和位置变化的,单位是长度单位。只要棋盘格的大小决定了,无论板子怎么动,棋盘格角点坐标一般就不再变动(因为是相对于世界坐标系原点的位置不变),且认为是Zw=0。