内参、外参、畸变参数三种参数与相机的标定方法与相机坐标系的理解

2023-05-16

  有国才有家,支持国产,生活中点滴做起,买手机就买华为,这是我们国家IT界的脊梁!!! 

1、 相机参数是三种不同的参数。

 相机的内参数是六个分别为:1/dx、1/dy、r、u0、v0、f。

opencv1里的说内参数是4个其为fx、fy、u0、v0。实际其fx=F*Sx,其中的F就是焦距上面的f,Sx是像素/没毫米即上面的dx,其是最后面图里的后两个矩阵进行先相乘,得出的,则把它看成整体,就相当于4个内参。其是把r等于零,实际上也是六个。

dx和dy表示:x方向和y方向的一个像素分别占多少长度单位,即一个像素代表的实际物理值的大小,其是实现图像物理坐标系与像素坐标系转换的关键。u0,v0表示图像的中心像素坐标和图像原点像素坐标之间相差的横向和纵向像素数

相机的外参数是6个:三个轴的旋转参数分别为(ω、δ、 θ),然后把每个轴的3*3旋转矩阵进行组合(即先矩阵之间相乘),得到集合三个轴旋转信息的R,其大小还是3*3;T的三个轴的平移参数(Tx、Ty、Tz)。R、T组合成成的3*4的矩阵,其是转换到标定纸坐标的关键。其中绕X轴旋转θ,则其如图:

   注意:在每个视场无论我们能提取多少个角点,我们只能得到四个有用的角点信息,这四个点可以产生8个方程,6个用于求外参,这样每个视场就还赚两个方程来求内参,则其在多一个视场即可求出4个内参。因为六个外参,这就是为什么要消耗三个点用于求外参。

 

畸变参数是:k1,k2,k3径向畸变系数,p1,p2是切向畸变系数。径向畸变发生在相机坐标系转图像物理坐标系的过程中。而切向畸变是发生在相机制作过程,其是由于感光元平面跟透镜不平行。其如下:

 

1.径向畸变:产生原因是光线在远离透镜中心的地方比靠近中心的地方更加弯曲径向畸变主要包含桶形畸变和枕形畸变两种。下面两幅图是这两种畸变的示意:

 

          它们在真实照片中是这样的:

 

           2.切向畸变:产生的原因透镜不完全平行于图像平面,这种现象发生于成像仪被粘贴在摄像机的时候。下面图片来自于《学习opencv》p413。

 

其中畸变的形象示意图是如下:

 

 

其总的转换关系:

下面是普通摄像头标定后的输出值,其如下:

其中的fx、fy是f/dx、f/dy得出来的值。其中的cx、cy一般不是正好是图像分辨率的一半,其是有偏差的,一般越好的摄像头则其越接近于分辨率的一半。上面例子使用的摄像头是一个普通的1280x720分辨率的摄像头,其偏差还是蛮大的。下面的数据是比较好的摄像头罗技720p的,其分辨率也是1280x720的分辨率。可以看出其更接近分辨率的一半。

 

2、相机的标定方法与意义:

(一)什么是摄像机标定

 

    在图像测量过程以及机器视觉应用中,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立摄像机成像的几何模型,这些几何模型参数就是摄像机参数。在大多数条件下这些参数必须通过实验与计算才能得到,这个求解参数的过程就称之为摄像机标定。

 

(一)相机标定的意义

 

    无论是在图像测量或者机器视觉应用中,摄像机参数的标定都是非常关键的环节,其标定结果的精度及算法的稳定性直接影响摄像机工作产生结果的准确性。因此,做好摄像机标定是做好后续工作的前提,是提高标定精度是科研工作的重点所在。其标定的目的就是为了相机内参、外参、畸变参数。

  其标定方法大概有三种如下:

1.线性标定方法的大概数学公式是:

其求解过程如下:

注意:这种标定是没有考虑到相机畸变的非线性问题,意思是这种标定是

在不考虑相机畸变的情况下使用。

 

2.非线性标定方法:

当镜头畸变明显时必须引入畸变模型,将线性标定模型转化为非线性标定模型,

通过非线性优化的方法求解相机参数:

3.两步标定法:

 

   1.Tsai的经典两步法

       概念Tsai基于 RAC 约束(RadialAlignment Constrain)提出的两步法,在求解过程中将CCD(电耦合器件)阵列感光元的横向间距和纵向间距当作已知参数,求解的摄像机内部参数:有效焦距f;镜头径向畸变系数k1,k2;非确定性尺度因子xs ;图像中心或主点u0,v0。外部参数:世界坐标系与摄像机坐标系之间的旋转矩阵R与平移向量t。

 

     求解:首先利用最小二乘法求解超定线性方程组,求得模型外部参数;然后求解内部参数,如果摄像机无透镜畸变,可通过一个超定线性方程组解出,如果存在一个以二次多项式近似的径向畸变,则利用一个包含三个变量的目标函数进行优化搜索求解

 

  

 

1.相机坐标系:

相机坐标系是连接图像物理坐标系世界坐标系的桥梁,其中相机坐标的系的坐标原点是:镜头的光心---其也是相机坐标系里的投影中心。

 

 

 

参考文献:

像素坐标转换到标定纸坐标的过程

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

内参、外参、畸变参数三种参数与相机的标定方法与相机坐标系的理解 的相关文章

  • Matlab关联m文件与m文件关联设置

    MATLAB安装后经常出现m文件不能关联到matlab打开 xff0c 很烦恼 网上有一些设置教程 xff0c 比如 xff1a 链接一 按照链接方式一方式二设置后出现报错 修改注册表亦没用 下面链接 链接二 链接三 链接四 都没有效果 代
  • 图像处理形态学椭圆形模板结构元素的设计与实现

    在图像处理中 xff0c 经常要用到形态学操作 xff0c 形态学操作中的结构元素有很多 xff0c 如点结构 十字架结构 圆结构 矩形结构 椭圆形结构等等 本文将介绍椭圆形结构的实现 主要结合OpenCV实现 具体如下 xff1a inc
  • 3维空间旋转3维空间矩阵旋转及旋转变换

    本文将实现三维空间中的旋转和平移变换 xff0c 即将三维空间中的一个向量 或者一个空间图形 移动到另一个位置 如下图所示 xff1a 如上图所示 xff0c 由矢量一移动到矢量二 三维空间中的移动可以分为旋转和平移 设矢量一在坐标位置 X
  • 回归方程推导

  • Mac终端代理设置

    title Mac终端代理设置 tags mac 终端设置代理 打开终端执行 export http proxy 61 http 127 0 0 1 1087 export https proxy 61 http 127 0 0 1 108
  • Unity3D游戏作品大盘点

    原文链接 xff1a http www unitymanual com 404 html 经典重现 新仙剑OL 新仙剑OL 采用跨平台Unity3D引擎 xff0c 耗资数千万 xff0c 历时三年多 xff0c 由台湾大宇正版授权 xff
  • IAR编译器的ICF链接脚本

    测试代码如下 xff1a task c span class token macro property span class token directive keyword pragma span default variable attr
  • 2020-10-24

    PendSV中断控制器地址 NVIC INT CTRL EQU 0xE000Ed04 触发PendSV NVIC PENDSV SET EQU 0x10000000 PendSV优先级控制地址 NVIC SYSPRI2 EQU 0xE000
  • Linux下如何配置Vlan

    VLAN是虚拟局域网的缩写 一个物理交换机上可以共存多个VLAN xff0c 这些交换机通过Linux软件配置 xff0c 而不是通过硬件接口 xff08 您仍然需要配置实际的硬件交换机 xff09 VLAN作为名称建议一次组合多个LAN
  • 附加项-linux下ssh的config文件讲解-闫刚

    在 ssh 下创建 config文件 xff0c 可以添加多个账号 xff0c 减少认证的问题 并以如下格式编辑配置文件 vi config HostName xff1a 是目标主机的主机名 xff0c 也就是平时我们使用ssh后面跟的地址
  • 第一章 第九节 如何Doxygen为代码生成html文档-闫刚

    Doxygen是一款文档生成工具 xff0c 它可以从代码中提取出相应的文档 xff0c 并组织 xff0c 输出成各种漂亮的文档 xff08 如HTML xff0c PDF xff0c RTF等 xff09 doxygen让你变成一位有品
  • 第二章 第二节 px4的uORB工作原理分析 闫刚

    px4中的uorb是px4非常核心的数据通信机制 xff0c 所有线程的通信都是靠uorb完成 xff0c 用过的人可能 xff0c 仅仅知道在想要获取orb数据的时候 xff0c 先进行订阅 xff0c 在发送orb消息之前 xff0c
  • 闫刚 qgroundcontrol地面站通信流代码架构

    qgroundcontrol开发者文档中说明了qgc中的各个链路流向在文档中说明的很清楚 xff0c 下面配套源代码进行讲解整个qgc地面站的数据流向过程 qgroundcontrol通信 在 https dev qgroundcontro
  • 闫刚 linux平台实现IMU的DriverFramework

    文章目录 介绍资源用户态spi包1 spidev的设备节点spidev0 3表示spi0的chip select3 内核态设备树注册spidev设备 介绍 讲解linux的spi驱动架构 包括用户空间和内核空间如何配合使用spi驱动 通过p
  • 闫刚 stm32的usb的hal软件架构原理讲解

    资源 stm32 usb cubemx md 闫刚 stm32的usb的hal软件架构原理讲解 一 usb基础 stm32的usb也是很多公司都在使用的接口 xff0c usb全速可以达到12M s 作为虚拟串口接口 xff0c 还是不错的
  • 闫刚 px4架构的cmake移植到linux上

    文章目录 px4架构的cmake移植到linux上仓库地址 xff1a 图一 PX4的源码cmake架构图二 px4添加一个驱动模块的CMakeLists txt文件图三 openSTM的源码架构图四 openSTM中添加子模块CMakeL
  • 闫刚 nuttx workqueue实现原理

    文章目录 资源工作队列实现添加工作对象工作队列执行进程 使用注意 资源 nuttx wqueue md 工作队列实现 优点 xff1a 最短时间调度 缺点 xff1a 工作队列执行完后 xff0c 需要重新创建 添加工作对象 span cl
  • 闫刚 px4的gps驱动原理

    文章目录 资源1 rcS启动2 gps status内容 资源 px4 gps md 标题 xff1a 闫刚 px4的gps驱动原理 1 rcS启动 固件版本 xff1a V1 8 0 gps start 2 gps status内容 IN
  • 闫刚 px4_uavcan_dsdl的原理

    文章目录 资源简介1 cannode构建分析1 1 找到uavcan的单板1 2 分析一下UAVCAN下的CAMKE1 3 1 查看dsdl下的文件1 3 2 查看输出路径下的include dsdlc generated 2 我们添加自己
  • 常用的 Stress / Performance 测试工具(Linux环境)

    压力测试 Stress 要如何在 Linux 下針對不同的 I O 與系統做壓力測試 可以參考下面幾種方式 SysBench http benjr tw 8715 Linux 下常見的壓力測試工具不多 而且通常很分散 要不然就是協力廠商所開

随机推荐