• 相机标定(世界坐标系>相机坐标系,相机坐标系>图像坐标系,图像坐标系>像素坐标系,完成世界坐标系>像素坐标系)


    本篇文章主要介绍如何使用相机标定,实现世界坐标系-->相机坐标系,相机坐标系-->图像坐标系,图像坐标系-->像素坐标系,完成世界坐标系-->像素坐标系。

     一、世界坐标系转换为相机坐标系

    相机标定概念:即求解外参旋转矩阵R与平移向量t

     世界坐标系概念(一般摄像机为坐标原点):

     相机坐标系:

     

    世界坐标系到相机坐标系方法通常使用旋转和平移方法实现:

    旋转方法种类:旋转矩阵,欧拉角,四元数,轴角,李群和李代数

    旋转应用场景:惯性导航,机器人学(机械臂运动学,无人机姿态估计,slam等)

    旋转矩阵图解推导方法:

    本图说明:红点假设为物体p(物体未发生变化,只是坐标系建立方法不同而已),黑色为原坐标系,蓝色为绕X轴旋转坐标系,旋转角为seta。

    求解新坐标系(Xc,Yc,Zc),其中绕X轴旋转,则新Xc=X将不发生变化。

    Yc=oa+ab=ec+pd=oc*sin(seta)+cp*cos(seta)=Z*sin(seta)+Y*cos(seta)

    Yc=ac-cd=oe-cd=oc*cos(seta)-cp*sin(seta)= Z*cos(seta)-Y*sin(seta)

     最终表现为矩阵如下:

    验证旋转是否正确(因到原点距离不变),采用欧式距离验证:

    通过以上方法类推绕Y轴,Z轴旋转,得到以下矩阵,将其相乘可得到绕X/Y/Z轴旋转的坐标转换。 

    如下为旋转角矩阵变换

    补充关于绕Y轴旋转的矩阵:

    以下利用几何变换推导绕Y轴变换不同的2个矩阵,若读者发现不同文章不一样,可以不用慌张,仅仅思考角度不一样,可理解seta角正负的影响,

    详情推导请看下面的变换。

     

    额外注意点:

    平移向量可表示为:

     通过旋转矩阵与平移向量可求R与t,即为相机的外参R、t

     

     二、相机坐标系转换为图像坐标系

    相机坐标系->图像坐标系这个转换过程,实际将三维转换我二维平面,其原理复符合小孔成像,可采用相似三角形求解转换公式。

    小孔成像示意图:

    从下图上,如果相机坐标系到图像坐标系的转化,我们可以理解为,如何将相机坐标系下的3D点 [公式] 映射到 [公式] 上,通过蓝色虚线部分,我们可以得到两个相似三角形 [公式] 和 [公式] ,其中相机坐标系的原点 [公式] 到图像坐标系的原点 [公式] 的距离,我们称之为焦距 [公式] 。

    利用相似三角形可得:

    最终可转换如下:

     

     三、图像坐标系转换像素坐标系 

    图像坐标系转像素坐标系实际是比列尺(属于缩放问题)与移动问题,首先是 [公式] 这个我们可以理解为,从图像坐标系中心点到像素坐标系中心点的一个偏移量。属于相机内参的一部分。另外,如果我们已知图像坐标系的一个点 [公式] ,我们还应该知道,横坐标的每一个mm对应像素是多少。即有如下公式:

    可使用以下公式表示:

     

    最终实现世界坐标系到像素坐标系的转换:

     上图可知M2为相机外参,M1为相机内参

    相机标定目的:

  • 相关阅读:
    list拖动
    android sdk
    AwwwB推荐网站全盘克隆
    WPF中的容器控件——WrapPanel
    WPF中的容器控件——StackPanel
    MFC应用程序中指针的使用
    排序算法之插入排序
    转:MFC 常用语句集锦
    【转】MFC学习总结
    排序算法之冒泡排序
  • 原文地址:https://www.cnblogs.com/tangjunjun/p/16240878.html
Copyright © 2020-2023  润新知