• 相机标定 和 单应性矩阵H


    求解相机参数的过程就称之为相机标定。


    1.相机模型中的四个平面坐标系:

    1.1图像像素坐标系(u,v)

    以像素为单位,是以图像的左上方为原点的图像坐标系;

    1.2图像物理坐标系(也叫像平面坐标系)(x,y)

    以毫米为单位,用物理单位表示图像像素位置,定义坐标系OXY,原点O定义在相机Zc轴与图像平面交点;

    1.3相机坐标系(Xc,Yc,Zc)

    以毫米为单位,以相机的光心作为原点,Zc轴与光轴重合,并垂直于成像平面,且取摄影方向为正方向,Xc、Yc轴

    与图像物理坐标系的x,y轴平行,且OcO为摄像机的焦距f;

    1.4世界坐标系(Xw,Yw,Zw)

    根据具体情况而定,该坐标系描述环境中任何物体的位置,根据具体情况而定,满足右手法则;


    四个坐标系关系作图如下:




    2.四个坐标系转换

    2.1世界坐标系(Xw,Yw,Zw)->相机坐标系(Xc,Yc,Zc):

    摄像机的外参数: 旋转向量(大小为1×3的矢量或旋转矩阵3×3)和平移向量(Tx,Ty,Tz)

    从相机坐标系到世界坐标系的变换,是通过旋转矩阵R和平移矩阵t完成的。


    式中,M1称为相机的外参数. R为3*3矩阵,T为3*1矩阵,0为(0,0,0),旋转矩阵R是坐标轴依次绕x,y和z轴旋转角度ψ,φ和θ,所形成的三个矩阵Rx(ψ),Ry(φ),Rz(θ)的总乘积,

    如下:


    矩阵R的计算公式为:



    2.2相机坐标系(Xc,Yc,Zc):->图像物理坐标系(x,y):

    摄像机的内参数:摄像机内参数矩阵(fx,fy,u0,v0)和畸变系数(三个径向k1,k2,k3,两个切向p1,p2)

    OpenCV中的畸变系数的排列(这点一定要注意k1,k2,p1,p2,k3)、


    理想的摄像机模型是针孔模型,但是实际的镜头不符合这种假设。另外,相机的构造以及制造、安装、工艺等因素也会造成误差,导致相机通常会存在多种非线性畸变,使得上面介绍的针孔相机模型并不能准确地描述最终的成像关系。所以,为了使相机标定结果更加准确,在进行相机标定时应该将相机的非线性畸变考虑进来,修正理想投影模型。


    径向畸变

    径向畸变产生的主要原因是镜头径向曲率的不规则变化,它会导致图像的扭曲变形,例如,空间中的一条直线成像到图像平面后发生弯曲,变形成一条曲线。这种畸变的特点是以主点为中心,沿径向移动,离的距离越远,产生的变形量就越大。径向畸变是导致图像畸变的主要因素。如图所示,一个矩形的严重径向失真被较正成理想线性镜头的图像。 

    这里写图片描述

    径向畸变模型在OpenCV中被描述为: 

    xcorrected=x(1+k1r2+k2r4+k3r6)ycorrected=y(1+k1r2+k2r4+k3r6)

    径向畸变如下图所示,有桶形畸变和枕形畸变两种。

    这里写图片描述


    切向畸变

    由于透镜不是完美地平行于图像平面,所以存在切向畸变。这种畸变使得一些区域看上去比预期的近。畸变模型为: 

    xcorrected=x+[2p1xy+p2(r2+2x2)]ycorrected=y+[p1(r2+2y2)+2p2xy]

    通常还有离心畸变、薄棱镜畸变等,但主要畸变是径向畸变和切向畸变,故opencv中使用这个5个参数描述摄像机畸变,即: 

    Distortion  coefficients=(k1,k2,p1,p2,k3)


    针孔模型下的理想透视投影变换:

    表示为矩阵形式为:

    f表示有效焦距

    2.3图像物理坐标系(x,y):->图像像素坐标系(u,v):



    上述公式中我们假设物理坐标系中的单位为毫米,那么dx的的单位为:毫米/像素。那么x/dx的单位就是像素了,即和u的单位一样都是像素,u0 ,v0是图像中心(光轴与图像平面的交点)坐标,dx,dy分别为一个像素在X与Y 方向上的物理尺寸.
    上式表示为齐次坐标与矩阵形式表示出来即为:



    其逆关系可表示为:


    3.世界坐标系与图像像素坐标系之间的变换关系:


    M1称为相机的内参数,M2称为外参数







    单应性矩阵H,来自于不同角度的拍摄,


    转自:http://blog.csdn.net/yonger_/article/details/55194602

  • 相关阅读:
    二级python两种不同处理方式统计字频
    二级python提纯文件中的原文(去掉小括号,注释等)
    二级python处理文件并计数
    二级python对字频统计
    matlab实现跨表自动对应标题填写数据
    用matlab对excel中数据选择性染色
    最短路径查找—Dijkstra算法
    BP实现函数拟合
    BP应用案例
    Matlab实现BP神经网络预测(附实例数据及代码)
  • 原文地址:https://www.cnblogs.com/wyuzl/p/7760601.html
Copyright © 2020-2023  润新知