当前位置: 首页 > news >正文

相机标定——小孔成像、相机模型与坐标系

小孔成像

用一个带有小孔的板遮挡在墙体与物之间,墙体上就会形成物的倒影,我们把这样的现象叫小孔成像。

用一个带有小孔的板遮挡在墙体与物之间,墙体上就会形成物的倒影,我们把这样的现象叫小孔成像。前后移动中间的板,墙体上像的大小也会随之发生变化,这种现象说明了光沿直线传播的性质。

在照相机被发明之前,人们就已经开始利用“小孔成像”原理制造各类光学成像装置,这种装置被称为“Camera obscura(暗箱)”。 19世纪上半叶,人们终于找到了固定保存暗箱中投影面上光学图像的方法与介质,照相机工业由此发展,因此Camera obscura被认为是照相机的祖先;而“Camera”则成了照相机的英文名称。

1839 年法国画家达盖尔根据小孔成像的原理发明了被称为“西洋镜”的世界第一台照相机。 不过当时的相机令现代人无法想象,暗箱大得像个小房子,拍摄时间至少三十分钟,以至于不得不将被摄的人头部固定在事先预制好的卡箍里,而且得到的只是一张笨重的铜版正像。 当时有报社记者评述:“就像在马路上拿着一面镜子,周围的景物极细地反映出来,然后把镜子带回家。”

现代照相机和摄影机也是利用了小孔成像的原理——镜头是小孔(大多数安装凸透镜以保证光线成像距离),景物通过小孔进入暗室,影像被一些特殊的化学物质(如显影剂等)留在胶片上。 数码相机、摄影机等则是将影像通过感光元件转换为数字信号(数码格式)存储在存储卡内。

其实,人类的视觉系统也是小孔成像的原理。只不过视觉系统的复杂度是相机系统的成千上万倍。

小孔成像模型

在这里插入图片描述

上图是最原汁原味的小孔成像原理图,它描述的是三维空间中的点到图像平面(image plane)上的投影。

在实际的实现和应用中,为了表达的方便,通常会将图像平面放在小孔和三维场景之间。如下图所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这里介绍几个概念:

  • 光轴:像极坐标系的Z轴
  • 光心:光轴中心点,即上图中的O点
  • 主点:光轴与图像平面的交点Principal Point
  • 焦距:光心到图像平面的距离Focal Length

四个坐标系

为了数学表达的方便,通常以光心为原点,建立一个图像坐标系。下图详细的描述了这些关系。

在这里插入图片描述

世界坐标系: O w − X w Y w Z w O_w−X_wY_wZ_w OwXwYwZw 单位m

世界坐标系(world coordinate),也称为测量坐标系,是一个三维直角坐标系,以其为基准可以描述相机和待测物体的空间位置。世界坐标系的位置可以根据实际情况自由确定。

相机坐标系: O c − X c Y c Z c O_c−X_cY_cZ_c OcXcYcZc 单位m

相机坐标系(camera coordinate),也是一个三维直角坐标系,原点位于镜头光心处,x、y轴分别与相面的两边平行,z轴为镜头光轴,与像平面垂直。

像素坐标系: O u v − u v O_{uv}−uv Ouvuv 单位像素pixel(整数)

像素坐标系(pixel coordinate),二维直角坐标系,反映了相机CCD/CMOS芯片中像素的排列情况。原点ouv位于图像的左上角,u轴、v轴分别于像面的两边平行。像素坐标系中坐标轴的单位是像素pixel(整数)
几乎所有的图像,像素坐标都如下图所示:
在这里插入图片描述
即:像素原点在图像的左上角,横坐标值表示列数c,通常以u表示;纵坐标值表示行数r,通常以v表示。

图像坐标系: O x y − x y O_{xy}−xy Oxyxy 单位mm

图像坐标系(image coordinate),由于像素坐标系不利于坐标变换,因此需要建立图像坐标系oxy,其坐标轴的单位为毫米(mm),原点是相机光轴与相面的交点(称为主点Principal Point),即图像的中心点,x轴、y轴分别与u轴、v轴平行。故两个坐标系实际是平移关系,即可以通过平移就可得到。
如下图:(u0,v0) 为图像坐标系中心O在像素坐标系下的位置表示。
在这里插入图片描述

点在各个坐标系的表达:

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 《数据结构(C语言版)第二版》第五章-树和二叉树(5.7 哈夫曼树及其应用)
  • 【AI学习】[2024北京智源大会]具身智能:具身智能关键技术研究:操纵、决策、导航
  • kafka 3.x 配置kerbos
  • 赋能未来园区:TSINGSEE视频AI智能管理平台如何引领园区管理智慧化转型
  • java selenium 设置代理,允许在其他环境中使用不同的IP访问
  • 分类预测 | Matlab实现PSO-XGBoost粒子群算法优化XGBoost的多特征分类预测
  • C# 方法的定义
  • JavaScript -- 总结 9 (小白)
  • k8s使用kustomize来部署应用
  • 排序算法1:堆排序,直接插入排序与希尔排序
  • System Verilog--$scanf应用举例
  • 学习日志8.7--防火墙安全策略
  • Hadoop单机及集群部署
  • html--前端
  • 前端构建工具|vite快速入门
  • 【译】JS基础算法脚本:字符串结尾
  • create-react-app做的留言板
  • FineReport中如何实现自动滚屏效果
  • Github访问慢解决办法
  • Java到底能干嘛?
  • mongo索引构建
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • Python3爬取英雄联盟英雄皮肤大图
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • 给新手的新浪微博 SDK 集成教程【一】
  • 基于 Babel 的 npm 包最小化设置
  • 免费小说阅读小程序
  • 面试遇到的一些题
  • 前端路由实现-history
  • 区块链技术特点之去中心化特性
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 使用parted解决大于2T的磁盘分区
  • 数据仓库的几种建模方法
  • 一些css基础学习笔记
  • 栈实现走出迷宫(C++)
  • 阿里云重庆大学大数据训练营落地分享
  • ​MySQL主从复制一致性检测
  • #define用法
  • $.ajax()参数及用法
  • (Matlab)使用竞争神经网络实现数据聚类
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (第27天)Oracle 数据泵转换分区表
  • (二)正点原子I.MX6ULL u-boot移植
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (三) diretfbrc详解
  • (一)Java算法:二分查找
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • .NET 4.0中的泛型协变和反变
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .NET编程——利用C#调用海康机器人工业相机SDK实现回调取图与软触发取图【含免费源码】
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境