如果按照实际的投影关系建立坐标系,那么投影坐标和物体坐标的符号总是相反的,考虑起来不太方便,于是在“数学上”把投影平面平移到其关于小孔对称的位置,这样投影坐标和物体坐标符号就相同了,示意图如下:
在视觉测量中,需要进行的一个重要预备工作是定义四个坐标系的意义,即世界坐标系、摄像机坐标系 、 图像坐标系、 像素坐标系 。
设某点在{world}坐标系中的坐标为
,
该点在{camera}坐标系中的坐标为
,
则有
其中R是正交旋转矩阵:
Rx Ry Rz 分别为矩阵沿着对应轴的旋转矩阵
具体推导公式列出一个 其他同理
T是平移矩阵:
为各个方向上的位移偏移量
确定R需要3个参数,确定T需要3个参数,共需6个参数,这6个参数称为摄像机的外部参数。(在单目相机中外参没有多少意义。只有在双目相机中,以另一个摄像头为坐标系,得出的相对另一个摄像头的旋转和平移矩阵才有实际意义)
设空间点 X c X_{c} Xc在{camera}下: P c = [ x c , y c , z c , 1 ] T P_{c}=\left [ x_{c},y_{c},z_{c},1 \right ]^{T} Pc=[xc,yc,zc,1]T,其像点 X p X_{p} Xp在{picture}的齐次坐标为 P p = [ x p , y p , 1 ] T P_{p}=\left [ x_{p},y_{p},1 \right ]^{T} Pp=[xp,yp,1]T,由图中相似三角形可得,
设 s x s_{x} sx表示Xpix方向上单位mm的像素数,单位是pix/mm, s y s_{y} sy表示Ypix方向上单位mm的像素数,单位是pix/mm, x 0 x_{0} x0, y 0 y_{0} y0表示投影平面中心在{pixel}中的坐标,设像素坐标 P p i x = [ u , v , 1 ] T P_{pix}=[ u,v,1]^{T} Ppix=[u,v,1]T,则有
结合{picture}到{image}的变换,则{camera}到{pixel}的变换矩阵K为
其中, f x = s x f , f y = s y f f_{x}=s_{x}f,f_{y}=s_{y}f fx=sxf,fy=syf称为相机在u轴和v轴方向上的尺度因子
f x , f y , x 0 , y 0 f_{x},f_{y},x_{0},y_{0} fx,fy,x0,y0这4个数叫做摄像机的内部参数,有时把焦距f也当作内部参数。因为这些参数只和摄像机有关系,和具体的摄像场景,和世界坐标系没有关系. f x , f y f_{x},f_{y} fx,fy的物理意义是摄像头感光芯片像素点的在两方向的尺度因子, x 0 , y 0 x_{0},y_{0} x0,y0的物理意义是摄像头感光芯片安装时与理论中心的水平与垂直偏移量。
综上,可得:
最后等式 前一项为相机内参矩阵,后一项为相机外参
透镜由于制造精度以及组装工艺的偏差会引入畸变,导致原始图像的失真。镜头的畸变分为径向畸变和切向畸变两类。径向畸变来自于透镜形状,切向畸变来自于整个摄像机的组装过程。畸变还有其他类型的畸变,但是没有径向畸变、切向畸变显著。
顾名思义,径向畸变就是沿着透镜半径方向分布的畸变,产生原因是光线在原理透镜中心的地方比靠近中心的地方更加弯曲,这种畸变在普通廉价的镜头中表现更加明显,径向畸变主要包括桶形畸变和枕形畸变两种。以下分别是枕形和桶形畸变示意图:
成像仪光轴中心的畸变为0,沿着镜头半径方向向边缘移动,畸变越来越严重。畸变的数学模型可以用主点(principle point)周围的泰勒级数展开式的前几项进行描述,通常使用前两项,即k1和k2,对于畸变很大的镜头,如鱼眼镜头,可以增加使用第三项k3来进行描述,成像仪上某点根据其在径向方向上的分布位置,调节公式为:
公式里( x 0 , y 0 x_{0},y_{0} x0,y0)是畸变点在成像仪上的原始位置,( x , y x,y x,y)是产生畸变后新的位置,下图是距离光心不同距离上的点经过透镜径向畸变后点位的偏移示意图,可以看到,距离光心越远,径向位移越大,表示畸变也越大,在光心附近,几乎没有偏移。
切向畸变是由于透镜本身与相机传感器平面(成像平面)或图像平面不平行而产生的,这种情况多是由于透镜被粘贴到镜头模组上的安装偏差导致。畸变模型可以用两个额外的参数p1和p2来描述:
下图显示某个透镜的切向畸变示意图,大体上畸变位移相对于左下——右上角的连线是对称的,说明该镜头在垂直于该方向上有一个旋转角度。
单目摄像机透镜畸变校正需要确定的就是k1,k2,k3,p1,p2这5个参数,如果“鱼眼”现象不明显的话,常常使用k1,k2来校正径向畸变。
https://blog.csdn.net/qq_28514991/article/details/88559590
https://blog.csdn.net/baidu_38172402/article/details/81949447
https://blog.csdn.net/u012209626/article/details/46475489