参考:张正友相机标定程序实现
相机标定目的:建立相机成像几何模型(获取相机内外参)并矫正透镜畸变。
世界坐标系、相机坐标系、图像坐标系、像素坐标系
其中,相机坐标系的Z轴与光轴重合,且垂直于图像坐标系平面并通过图像坐标系的原点,相机坐标系与图像坐标系之间的距离为焦距f(也即图像坐标系原点与焦点重合)。像素坐标系平面u-v和图像坐标系平面x-y重合,但像素坐标系原点位于图中左上角。
棋盘是一块由黑白方块间隔组成的标定板,我们用它来作为相机标定的标定物(从真实世界映射到数字图像内的对象)。之所以我们用棋盘作为标定物是因为平面棋盘模式更容易处理(相对于复杂的三维物体),但与此同时,二维物体相对于三维物体会缺少一部分信息,于是我们会多次改变棋盘的方位来捕捉图像,以求获得更丰富的坐标信息。
findChessboardCorners() 检测棋盘格内部角点的位置,为了得到更为精确的角点位置,可以用cornerSubPix()
cornerSubPix() The function iterates to find the sub-pixel accurate location of corners or radial saddle points,输入要求为灰度图像
findCirclesGrid() 检测圆形珊格的中心点
drawChessboardCorners() 在图像上画角点
calibrateCamera() 相机标定,通过不同视角下的标定板图片计算相机内外参数。
projectPoints() 根据指定的相机内外参数,计算3D点在图像平面的的投影点坐标,可用来评价标定结果。
initUndistortRectifyMap() 计算畸变映射
remap() 图片重映射
来源:oschina
链接:https://my.oschina.net/u/4327960/blog/3525588