1手机相机标定与校正1.1实验目的要进行手机相机的标定与校正,首先需要建立模型。通过拍摄到的图像信息获取到物体在真实三维世界里相对应的信息,建立物体从三维世界映射到相机成像平面这一过程中的几何模型。由于相机透镜的制造工艺,会使成像产生多种形式的畸变,例如近大远小,在世界坐标系中的直线转化到其他坐标系不在是直线等。在矫正过程中,利用畸变系数来矫正这种像差。1.2实验原理1.2.1相机标定模型与方法定义如下的四个坐标系来建立模型:世界坐标系(三维):用户定义的三维世界的坐标系,描述目标物在真实世界里的位置。单位为m。相机坐标系(三维):在相机上建立的坐标系,从相机的角度描述物体位置,作为沟通世界坐标系和图像/像素坐标系的中间一环。单位为m。图像坐标系(二维):描述成像过程中物体从相机坐标系到图像坐标系的投影透射关系,方便进一步得到像素坐标系下的坐标。单位为m。像素坐标系(二维):描述物体成像后的像点在数字图像上(相片)的坐标,是我们真正从相机内读取到的信息所在的坐标系。单位为个(像素数目)。通过单应性变化实现像素坐标系与世界坐标系之间的映射,假定标定棋盘位于世界坐标系中0wZ的平面,两者间坐标映射关系如下:00120011001xwywfuuXvsfvrrtY其中,u、v表示像素坐标系中的坐标,s表示尺度因子,X.Y表示世界坐标系中的坐标。如下矩阵为相机的内参矩阵,其中/,/xyffdxffdy为分别在x轴和y轴上对焦距进行归一化所求得的值,dx、dy为像元尺寸。00(,)uv为图像中心坐标。0000001xyfufv张氏相机标定法利用单应性矩阵来描述世界坐标系与像素坐标系之间的映射关系,将尺度因子、内参矩阵和外参矩阵的乘积定义为单应性矩阵,如下所示:001200001xyfuHsfvrrt确定角点后,可通过下述公式求得单应性矩阵H,进一步求得内参矩阵以及外参矩阵:111213212223313233''11xhhhxyhhhyhhh展开化简,化为AX=0的齐次方程组形式,多组对应点形成超定方程组,可以运用最小二乘法求解:111213313233313233111213313233212223212223313233''()y'()y'hxhyhxhxhyhxhxhyhhxhyhhxhyhhxhyhhxhyhhxhyh将单应性矩阵化为12HsMrrt,M为内参矩阵。通过元素对应关系以及旋转向量的约束关系求解,即可得到内参矩阵及外参矩阵。1.2.2相机校正原理由于光线在远离透镜中心的地方比靠近中心的地方更加弯曲以及透镜的工艺等原因,相机会产生径向畸变和切向畸变两种类型的畸变,如图1所示。通过泰勒级数展开可以对两种畸变进行描述,径向畸变可以通过下面的方程组进行纠正:246123246123(1krkrr)(1krkrr)correctedcorrectedxxkyyk图1相机畸变示意图切向畸变会造成图像中的某些点看上去的位置会比我们认为的位置要近一些,它可以通过下列方程组进行校正:221222122pxyp(r2)2pxyp(r2)correctedcorrectedxxxyyx1.3实验内容1.3.1相机模型建立与参数求取张氏相机标定法采用黑白棋盘标定板作为拍摄对象,通过关联棋盘所在平面与相机成像平面,建立相机模型。首先,通过角点检测找到棋盘中各个角点在图像中的像素位置,如图2所示。假定棋盘在XY平面是静止的,Z总是等于0,传入角点位置(0,0),(1,0),(2,0)...已知每个角点在实际世界坐标系中的位置,建立对象点与图像点之间联系,即可根据标定图得到单应性矩阵。图2棋盘格角点检测输入棋盘内角点规格8*6,通过函数cv2.findChessboardCorner()返回的角点是近似值,实际位置的精度受限于图像设备的精度,小于1个像素。利用cv2.cornerSubPix()函数,用近似位置以及图像作为输入,计算角点的精确位置,确定亚像素角点。部分角点的世界坐标系三维坐标以及相机坐标系二维坐标如图三所示:图3部分角点坐标通过已知的对象点与图像点,即可求得单应性矩阵H,通过计算可求得相机的内参矩阵以及畸变系数矩阵,最终求得的畸变系数矩阵形式为12123,,p,p,kkk。在求得全部的内外参矩阵参数以及畸变系数后,还需要对内外参矩阵以及畸变系数矩阵进行优化。调用cv2.getOptimalNewCameraMatrix()函数,通过其得到的自由缩放系数进行优化。如果缩放系数等于0,表示尽可能裁剪不想要的像素,参数1表示保留所有像素点,同时可能引入黑色像素。最终计算的...