0.前言

相机将三维世界中的坐标点(单位为米)映射到二维图像平面(单位为像素),这个过程可以用一个几何模型进行描述,其中最简单的一个模型称为针孔模型。之所以说它简单,是因为这是个线性变换;但是实际的相机上因为透镜的存在,会使光线投影到成像平面的过程中产生畸变,增加了非线性的变换过程。

1.针孔相机模型

首先不考虑畸变,建立图1所示针孔相机成像模型。

图1 小孔成像模型与相机坐标系

又是包含一堆公式的推导,贴图大法走起。

这里需要注意的有两点:1)像素坐标系中一般以左上角为原点,向右为x轴正方向,向下为y轴正方向,乍一看像是左手坐标系,实则不然,此时还是右手坐标系。2)上述方程的推导是建立在图1所示的相机坐标系的基础上;如果我们定义的相机坐标系不是图中的那样(譬如Z轴向上之类的),则不能直接套用该公式

2.鱼眼相机模型

小孔成像模型简单易懂,但实际相机中成像模型往往更复杂。假如使用小孔成像模型制造相机,则其视场角不会很大(想象一下cmos底片很小且焦距固定的情况)。而我们实际使用中甚至有视场角达到180°的鱼眼相机,使用小孔成像模型是绝对做不到的,其中实现的方式就是引入了组合透镜。

图2 鱼眼相机成像

以鱼眼相机为例,为了获取更加宽广的视野,使用组合透镜,使入射光线经过不同程度的折射投影到成像平面,使得鱼眼镜头相比于普通镜头拥有了更大的视野范围。

图3 鱼眼镜头成像简化模型

这张示例图能更佳清晰地说明鱼眼镜头是如何扩大摄像头视场角的:光线经过透镜后发生了折射,再投影至相平面。假设光线的入射角为θ,成像像高为r,人们对其中的转换关系提出了多种模型。

这里主要讨论等距投影模型,并结合图4推导相机坐标系到成像坐标系的变换。相机坐标系中点P投影至透镜上点P1,再经过“折射”映射到点p。这里认为“折射”发生后,点p仍然位于直线PP1和Z轴构成的平面上,即成像平面中原点到点p的向量与x轴的夹角等于相机坐标系中向量P1P与X轴的夹角,成像平面中原点到点p的向量与y轴的夹角等于相机坐标系中向量P1P与Y轴的夹角。

图4 鱼眼镜头成像推导

鱼眼相机成像模型学习相关推荐

  1. 机器视觉——鱼眼相机成像模型

    一.鱼眼镜头模型   鱼眼镜头一般是由十几个不同的透镜组合而成的,在成像的过程中,入射光线经过不同程度的折射,投影到尺寸有限的成像平面上,使得鱼眼镜头与普通镜头相比起来拥有了更大的视野范围.下图表示出 ...

  2. 鱼眼相机成像模型以及基于OpenCV标定鱼眼镜头(C++)

    opencv系列 文章目录 opencv系列 一.鱼眼镜头模型 二.投影函数 等距投影模型 等立体角投影模型 正交投影模型 体视投影模型 三.OpenCV中的鱼眼相机模型 四.标定(C++)实现 使用 ...

  3. 从零开始一起学习SLAM(8)相机成像模型

    文章目录 小孔成像 纷繁复杂的坐标系 针孔相机成像原理 相机畸变   此文发于公众号:计算机视觉life.   原文链接:从零开始一起学习SLAM | 相机成像模型 上一篇文章<从零开始一起学习 ...

  4. 相机标定(三)-相机成像模型

    >>>文章索引<<< 相机标定(一)-原理及内参.外参 相机标定(二)-畸变校正,张正友标定法 相机标定(三)-相机成像模型 1 人眼&相机结构 1.1 类 ...

  5. 相机成像模型、相机内参、外参、以及相机标定

    看了一圈各个平台讲解相机模型.相机标定的文章,很多只是简单罗列几个公式,其中的细节都没说明,本着学习的出发点写下这篇文章,希望能给初学者解惑.本文主要讲解相机模型,一步步推导从世界坐标系到图像坐标系的 ...

  6. 【鱼眼相机模型】鱼眼相机投影模型理解

    一.从普通镜头到鱼眼镜头 如图1所示,普通镜头下的光线依据针孔相机模型进行成像(该部分可参考相机投影关系).但该模型存在一个缺陷:相机视野范围越大,所需的成像平面也越大,当相机视野范围要求在180°时 ...

  7. 相机内参_鱼眼相机标定模型

    Camera Calibration是计算Camera的extrinsic(外参)和 intrinsic(内参)的过程.一旦你标定完成了一个camera,你即可从2维图像中去恢复3维图像.你同样可以在 ...

  8. 单目相机成像模型——针孔相机模型

    高翔:SLAM十二讲阅读笔记 本节主要注意四个坐标:世界,相机,归一化相机,像素. 针孔相机模型 相机坐标转换成像素坐标,由内参数矩阵决定. 相机位姿决定世界坐标转换成相机坐标:即外参数矩阵 内参数矩 ...

  9. 视觉SLAM学习--相机成像模型及标定

    相机模型1:B站热心网友的视频讲解,比较清楚 链接:https://www.bilibili.com/video/BV1Rh411o7Jb/?spm_id_from=333.788.recommend ...

最新文章

  1. TensorRT 7.2.1 开发概要(上)
  2. 对抗样本无法被重建!CMU提出通用的无监督对抗攻击检测方法
  3. SDN/NFV步入规模部署期 运营商拓智能化成大势所趋
  4. REM重复制造的冲销
  5. mysql中my.cnf文件_MySQL中my.cnf文件选项
  6. 一群猴子排成一圈,按1,2,...,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈...
  7. Spring的配置文件详解
  8. c语言加密shell脚本,shell脚本加密
  9. 去哪儿-14-vuex_localstorage
  10. EasyUI系列学习(一)-入门
  11. oracle数据库连接违反,Oracle 数据库连接的一些坑
  12. JAVA     MyFirst.java
  13. 微软与开源,化干戈为玉帛
  14. VS2012下基于Glut OpenGL GL_STENCIL_TEST示例程序:
  15. 08 Django组件-Forms组件
  16. LTspice使用第三方spice模型进行仿真
  17. docker安装redis镜像步骤
  18. 无人值守自动称重系统的组成和结构
  19. Dart的mixin详解
  20. PTA 快速排序 (25分)

热门文章

  1. python实现摇号小程序
  2. java 取当前时间年月日_Java获取当前时间年月日的方法
  3. 锁定放大器 matlab,基于MATLAB仿真的锁定放大器的研究
  4. MAC os, Google drive 登录故障排除 (There was a problem signing in)
  5. Android productFlavors多环境配置
  6. 使用supervisor管理laravel队列 - 配置文件supervisord.conf
  7. 吉大计算机专硕报录比,22考研院校报录比汇总(持续更新)
  8. 回归模型选择(R语言版)
  9. Linux下防范缓冲区溢出攻击安全策略(转)
  10. GMV从5w日增到1000w,夏日经济下它是如何成为直播间的新宠?