相机模型浅析
相机模型
文章目录
- 相机模型
- 四个坐标系
- 针孔相机模型
- 世界坐标系到相机坐标系
- 相机坐标系到图像坐标系
- 图像坐标到像素坐标
四个坐标系
①世界坐标系:是客观三维世界的绝对坐标系,也称客观坐标系。因为数码相机安放在三维空间中,我们需要世界坐标系这个基准坐标系来描述数码相机的位置,并且用它来描述安放在此三维环境中的其它任何物体的位置,用 ( X w , Y w , Z w ) (X_w, Y_w, Z_w) (Xw,Yw,Zw)表示其坐标值。
②相机坐标系(光心坐标系):以相机的光心为坐标原点,X 轴和Y 轴分别平行于图像坐标系的 X 轴和Y 轴,相机的光轴为Z 轴,用 ( X c , Y c , Z c ) (X_c, Y_c, Z_c) (Xc,Yc,Zc)表示其坐标值。
③图像坐标系:以CCD 图像平面的中心为坐标原点,X轴和Y 轴分别平行于图像平面的两条垂直边,用 ( x , y ) ( x , y ) (x,y)表示其坐标值。图像坐标系是用物理单位(例如毫米)表示像素在图像中的位置。
④像素坐标系:以 CCD 图像平面的左上角顶点为原点,X 轴和Y 轴分别平行于图像坐标系的 X 轴和Y 轴,用 ( u , v ) (u , v ) (u,v)表示其坐标值。
针孔相机模型
相机实质上就是完成一个3D空间到2D平面的投影的过程其中投影中心称为摄像机中心 ,也称为光心摄像机中心到图像平面的垂线称为摄像机的主轴或主射线 ,而主轴在图像平面的交点称为主点。过摄像机中心平行于图像平面的平面称为摄像机的主平面。
世界坐标系到相机坐标系
一般, 空间点采用不同的欧氏坐标系表示 ,称为世界坐标系。其中世界坐标系于相机坐标系通过旋转和平移相联系
因为可以将相机坐标系看作世界坐标系的一个欧式变换,设一个点 A A A在世界坐标系中的坐标为 [ X w , Y w , Z w , 1 ] T [X_w,Y_w,Z_w,1]^T [Xw,Yw,Zw,1]T,在相机坐标系中的坐标为 [ X c , Y c , Z c , 1 ] T [X_c,Y_c,Z_c,1]^T [Xc,Yc,Zc,1]T,则存在以下关系
[ X c Y c Z c 1 ] = [ R t 0 T 1 ] [ X w Y w Z w 1 ] \begin{bmatrix} X_c\\ Y_c\\ Z_c\\ 1 \end{bmatrix}= \begin{bmatrix} R&t\\ 0^T&1 \end{bmatrix} \begin{bmatrix} X_w\\ Y_w\\ Z_w\\ 1 \end{bmatrix} XcYcZc1 =[R0Tt1] XwYwZw1
其中 R , t R,t R,t称为相机的外部参数,并将 [ R t 0 T 1 ] \begin{bmatrix} R&t\\ 0^T&1 \end{bmatrix} [R0Tt1]即为 M e x t M_{ext} Mext
相机坐标系到图像坐标系
根据相似三角形可得 ∥ O C ∥ ∥ A B ∥ = ∥ O O ∥ ∥ O A ∥ = ∥ O C ∥ ∥ O B ∥ = ∥ x C ∥ ∥ X B ∥ \frac{\|OC\|}{\|AB\|}=\frac{\|OO\|}{\|OA\|}=\frac{\|OC\|}{\|OB\|}=\frac{\|xC\|}{\|XB\|} ∥AB∥∥OC∥=∥OA∥∥OO∥=∥OB∥∥OC∥=∥XB∥∥xC∥
可得在相机坐标系中的点 ( X c , Y c , Z c ) (X_c,Y_c,Z_c) (Xc,Yc,Zc)在图像平面上的投影为 ( f X c Z c , f Y c Z c ) (f\frac{X_c}{Z_c},f\frac{Y_c}{Z_c}) (fZcXc,fZcYc),其中在齐次坐标中表示为 ( f X c , f Y c , Z c ) (fX_c,fY_c,Z_c) (fXc,fYc,Zc)
可构造方程
[ f X c f Y c Z c ] = [ f 0 f 0 1 0 ] [ X c Y c Z c 1 ] \begin{bmatrix} fX_c\\ fY_c\\ Z_c \end{bmatrix} =\begin{bmatrix}f&&&0\\&f&&0\\&&1&0\end{bmatrix}\begin{bmatrix}X_c\\Y_c\\Z_c\\1\end{bmatrix} fXcfYcZc = ff1000 XcYcZc1
其中矩阵 [ f 0 f 0 1 0 ] \begin{bmatrix} f&&&0\\ &f&&0\\ &&1&0 \end{bmatrix} ff1000 记为 M p r o j M_{proj} Mproj
图像坐标到像素坐标
可得以下关系
[ u v 1 ] = [ k u 0 l v 0 1 ] [ x y 1 ] \begin{bmatrix} u\\ v\\ 1 \end{bmatrix} =\begin{bmatrix} k&&u_0\\ &l&v_0\\ &&1 \end{bmatrix} \begin{bmatrix} x\\ y\\ 1 \end{bmatrix} uv1 = klu0v01 xy1
其中 k k k和 l l l分别是每个像素在图像平面x和 y方向上的物理尺寸。
其中将矩阵 [ k u 0 l v 0 1 ] \begin{bmatrix} k&&u_0\\ &l&v_0\\ &&1 \end{bmatrix} klu0v01 记为 M a f f M_{aff} Maff
若 u , v u,v u,v不垂直,其夹角为 θ \theta θ。则 M a f f = [ k − k cos θ u 0 l / sin θ v 0 1 ] M_{aff}=\begin{bmatrix} k&-k\cos\theta&u_0\\ &l/\sin\theta&v_0\\ &&1 \end{bmatrix} Maff= k−kcosθl/sinθu0v01
相关文章:
相机模型浅析
相机模型 文章目录 相机模型四个坐标系针孔相机模型世界坐标系到相机坐标系相机坐标系到图像坐标系图像坐标到像素坐标 四个坐标系 ①世界坐标系:是客观三维世界的绝对坐标系,也称客观坐标系。因为数码相机安放在三维空间中,我们需要世界坐标…...
国芯科技(C*Core)双芯片汽车安全气囊解决方案
汽车安全气囊是20世纪汽车上的十大发明之一,是目前汽车的法定标准配置,成为汽车驾乘人员生命安全的保护神。随着人们对汽车安全性要求的进一步提高,已形成前排驾驶员气囊、前排副驾驶员气囊、前排侧气囊、后排侧气囊、膝部气囊、安全气帘等等…...
牛客周赛 Round 39(A,B,C,D,E,F,G)
比赛链接 官方题解(视频) B题是个贪心。CD用同余最短路,预处理的完全背包,多重背包都能做,比较典型。E是个诈骗,暴力就完事了。F是个线段树。G是个分类大讨论,出题人钦定的本年度最佳最粪 题目…...
解锁区块链技术的潜力:实现智能合约与DApps
在数字时代,区块链技术正迅速成为重塑多个行业的革命性力量。从金融服务到供应链管理,再到数字身份验证,区块链提供了一种去中心化、安全和透明的数据处理方式。在本文中,我们将深入探讨区块链技术,特别是智能合约和去…...
MAC OS关闭SIP(navicat 无法保存密码)
最近安装navicat(16.3.7)时,安装后无法保存密码,保存密码会报错如下: 因为用的破解版,一开始是打不开的,用自带的修复软件修复后就可以打开了,但是保存密码就会报错,按照网上的一些操作 1、卸载…...
阿里云服务器带宽价格全解析,附报价单
阿里云服务器公网带宽怎么收费?北京地域服务器按固定带宽计费一个月23元/M,按使用流量计费0.8元/GB,云服务器地域不同实际带宽价格也不同,阿里云服务器网aliyunfuwuqi.com分享不同带宽计费模式下带宽收费价格表: 公网…...
Day36|贪心算法part05:435. 无重叠区间、763.划分字母区间、56. 合并区间
435. 无重叠区间 有了上题射气球的因子,这题也就有思路了,反正无脑排序就行了: 首先将所有区间按照end的大小从小到大排序;选取最早end为起始x_end遍历所有区间,如果该区间的start比end大(可重叠…...
棋牌室计时吧台计费收费灯控管理系统软件操作流程
棋牌室计时吧台计费收费灯控管理系统软件操作流程 一、前言 以下软件操作教程以,佳易王棋牌桌球计时计费管理系统软件灯控版V17.87为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 该计时计费软件可以是棋牌和桌球混合同时计时计费 …...
【实践篇】RabbitMQ实现队列延迟功能汇总
前言 记录下RabbitMQ实现延迟队列功能的所有实践内容。 前期准备,需要安装好docker、docker-compose的运行环境。 一、安装RabbitMQ 开启RabbitMQ的WEB管理功能。-CSDN博客 二、实现延迟队列的两种方式 RabbitMQ实现延迟队列的两种方式。-CSDN博客 三、实践文…...
EditPlus来啦(免费使用!)
hello,我是小索奇 今天推荐一款编辑器,是索奇学习JavaSE时入手滴,非常好用哈,小索奇还是通过老杜-杜老师入手滴,相信很多人也是通过老杜认识嘞,来寻找破解版或者准备入手这个间接使用的编辑器~ EditPlus是…...
蓝桥杯22年第十三届省赛-数组切分|线性DP
题目链接: 蓝桥杯2022年第十三届省赛真题-数组切分 - C语言网 (dotcpp.com) 1.数组切分 - 蓝桥云课 (lanqiao.cn) 这道题C语言网数据会强一些。 说明: 对于一个切分的子数组,由于数组是1-N的一个排列,所以每个数唯一 可以用子…...
小米汽车:搅动市场的鲶鱼or价格战砧板上的鱼肉?
3月28日晚,备受关注的小米汽车上市发布会召开,小米集团董事长雷军宣布小米SU7正式发布。小米汽车在带飞股价的同时,二轮订购迅速售尽。 图一:小米集团股价 雷军口中“小米汽车迈出的第一步,也是人生最后一战的开篇”&a…...
Docker 学习笔记(五):梳理 Docker 镜像知识,附带 Commit 方式提交镜像副本,安装可视化面板 portainer
一、前言 记录时间 [2024-4-10] 前置文章: Docker学习笔记(一):入门篇,Docker概述、基本组成等,对Docker有一个初步的认识 Docker学习笔记(二):在Linux中部署Docker&…...
K8S node节点执行kubectl get pods报错
第一个问题是由第二个问题产生的,第二个问题也是最常见的 网上找的都是从master节点把文件复制过来,这样确实可以解决,但是麻烦,有一个node节点还好,如果有多个呢?每个都复制吗?下面是我从外网…...
C++简单日志系统
需求描述 日志等级:定义一个枚举类型 LogLevel,包含至少四个等级:DEBUG、INFO、WARNING、ERROR。日志记录:实现一个 Logger 类,包含以下功能: 一个静态方法 log,接受 LogLevel 和一个字符串作为…...
MySQL基础练习题:习题21-25
这部分主要是为了帮助大家回忆回忆MySQL的基本语法,数据库来自于MySQL的官方简化版,题目也是网上非常流行的35题。这些基础习题基本可以涵盖面试中需要现场写SQL的问题。 列出在部门sales工作的员工的姓名,假定不知道销售部的部门编号 sele…...
全面的网络流量监控
流量监控指的是对数据流进行的监控,通常包括出数据、入数据的速度、总流量。通过网络流量监控,组织可以确保只有业务关键型流量通过网络传输,并限制不需要的网络流量,从而提高网络效率,又可以防止停机、减少 MTTR、帮助…...
探索网络爬虫:技术演进与学习之路
网络爬虫及IP代理池 前言爬虫技术的演进最新的爬虫技术爬虫技术学习路线 前言 在信息时代,网络爬虫技术作为获取和处理网络数据的重要手段,已经成为数据科学、机器学习和许多商业应用的基石。从简单的HTML页面抓取到复杂的动态内容采集,爬虫…...
目标检测——色素性皮肤病数据集
一、重要性及意义 首先,色素性皮肤病变是一类常见的皮肤疾病,其发病率有逐年增高的趋势。这些病变可能由遗传或环境因素导致黑素细胞生成异常,如黑色素瘤等。黑色素瘤具有极高的恶性率和致死率,而且恶化可能性大,容易…...
Unity3D 打空包与远程资源更新详解
前言 在游戏开发过程中,打包和远程资源更新是非常重要的步骤,本文将详细介绍Unity3D中如何进行打空包和远程资源更新。 对惹,这里有一个游戏开发交流小组,希望大家可以点击进来一起交流一下开发经验呀! 一、打空包 …...
32单片机入门持续更新中
配套资料为野火霸道V2 初识 STM32 4.1 什么是 STM32 STM32,从字面上来理解,ST 是意法半导体,M 是 Microelectronics 的缩写,32 表示 32 位,合起 来理解,STM32 就是指 ST 公司开发的 32 位微控制器。在如今…...
蓝桥杯 每天2题 day6
碎碎念:哇咔咔 要不是中间缺勤一天就圆满day7了!最后一晚上!写题复习哇咔咔 唉,睡了一觉就看不下去了,,,看看之前的笔记洗洗睡觉,,, 记得打印准考证带好东西…...
Fast-lio2运行时如何显示轨迹线
修改对应设备的.yaml文件,以velodyne为例: 将 path_en参数改为true即可,运行其他设备,修改对应的参数...
2022年全国青少年信息素养大赛Python国赛第1-10题,含解析答案
01-分苹果 把一堆苹果分给n个小朋友,每个人拿到的苹果数量不同,并且每个人至少有一个。任意输入小朋友的数量n,问这堆苹果至少应该有多少个。输入描述:任意输入小朋友的数量n输出描述:输出这堆苹果至少应该有多少个 样例输入: 3 样例输出: 6 注意: input()内不添…...
python学习笔记——文件操作
1. 文件操作**** 1.1. open()函数**** 参数: 1. File:需要打开的文件 2. Mode:读、写、读写 (1) r:只读 (2) w:只写文件(覆盖) (3) a:只写文件(追加) …...
滑动窗口用法
文章目录 1. 长度最小的子数组(模板)2. 无重复字符的最长字串3. 最小覆盖字串4. 加油站5. 替换字串得到平衡字符串 1. 长度最小的子数组(模板) 题目分析 直接用步骤分析示例1,[]表示窗口,min_length表示满…...
智慧港口整体解决方案(一)
前言 智慧港口建设对创新驱动、转型发展具有重要推动作用加快推动第五代港口发展进程,成为当今港口转变发展方式、 提升企业综合竞争力的主潮流。智慧港口是港口未来发展主要方向 物联网、云计算技术发展智慧港口是物联网、移动互联网、云计算、人工智能等高新 技术与港口功能的…...
ubuntu如何限制系统日志大小?
ubuntu中的系统日志文件件如不及时清理,时间长了会占用硬盘的空间,如下所示: /var/log/journal/4321d62ad63d44cbbc4dff3b6e282b26/system9f5b4d5081d24b319f8b4677cf673a97-0000000000184ca6-00061412655a5a79.journal: 128M /var/log/journ…...
【Linux】线程概念及线程互斥
目录 线程概念 线程优点 线程缺点 线程异常 线程系统编程接口 线程创建及终止 线程等待 使用线程系统接口封装一个小型的C线程库并实现一个抢票逻辑 线程互斥 互斥量的接口 线程互斥实现原理 使用系统加锁接口封装LockGuard 实现自动化加锁 线程安全和可重入函数 …...
测试需求分析
测试需求是什么? --需求文档 测试需求主要解决**“测什么”的问题,一般来自需求规格说明书中原始需求 测试需求应全部覆盖已定义的业务流程,以及功能和非功能**方面的需求 功能:基本用户需求–优先 非功能:界面&#…...
学习php网站开发/2022年十大流行语
UNIX Shell 里面比较字符写法-eq 等于; -ne 不等于;-gt 大于; -lt 小于 ;-le 小于等于; -ge 大于等于;-z 空串; -n 非空串; 两个字符相等; ! 两个字符不等无论什么编程语言都离不开条件判…...
建设基础化学网站的经验/今日军事新闻头条
选自GoogleAIblog 作者:Django Stars本文转自机器之心(nearhuman2014)原文链接:https://djangostars.com/blog/python-ide/前言写 Python 代码最好的方式莫过于使用集成开发环境(IDE)了。它们不仅能使你的…...
iis6.1的网站建设及权限设置/互联网下的网络营销
//阿里面试//2010 年,阿里正当红。那年 BAT 的名气还没有现今那么响亮。就业的时候,很多毕业生还是会选择 HP, IBM, EMC, SONY, ORACLE,Microsoft 等一类的外企。这些外企在毕业生眼中代表的是名牌,权威,以及自由&…...
浙江人工智能建站系统软件/会计培训
前言:这篇文章可能会引起“网页设计者”的不安,因为可能会让他们产生“我必须要学习枯燥的代码”的误解;这篇文章也可能会引起“程序员”的不安,因为可能会让他们产生“我必须学习繁琐的网页设计”的误解;这篇文章也可…...
app软件开发公司找用友yonmaker/平台优化是指什么
求递归算法时间复杂度:递归树1.参考资料2.内容1.参考资料 参考网页:求递归算法时间复杂度:递归树 2.内容 递归算法时间复杂度的计算方程式是一个递归方程: T(n){O(1)n1kT(n/m)f(n)n>1T(n) \left\{ \begin{array}{ll} O(1) & n1 \\…...
做数据可视化图的网站/服装市场调研报告
OS文件本地化处理要经过三个步骤,获得文件保存路径、根据文件的属性选择对应的存档方式,存档读档的实现。 一、获得文件保存路径 1."应用程序包": 这里面存放的是应用程序的源文件,包括资源文件和可执行文件。 NSString *path [[N…...