计算机视觉基础(8)——齐次坐标系与相机内外参

前言

本节我们将学习到透视投影、齐次坐标系等基础知识,在这些基础知识上,进一步了解到相机的参数,相机参数分为相机外参和相机内参,相机外参是从世界坐标系到相机坐标系,相机内参是从相机坐标系到图像坐标系。

一、透视投影

首先让我们回顾一下上节学习的针孔相机模型

所有光线相交于相机中心 (针孔),在相机后的图像平面成倒像

图像平面与相机的距离为焦距f,是相机的一项参数

在相机前假设存在虚像,与实像关于针孔呈中心对称

针孔模型将3D场景投影至2D平面,这个过程是典型的透视投影。

1.1  透视投影的性质

直线投影后仍是直线 (Line-preserving)

物体投影后的大小与原大小不一定相同,与距离成反比,近大远小 (Not length-preserving)

投影前后角度也会发生变化 (Not angle-preserving),即平行线投影后不再平行

同一方向上的所有平行线相交于一点,消逝点 (Vanishing point)

消逝点代表无穷远点,每个方向有且仅有一个消逝点

1.2  正投影与弱透视投影

1.3  数学推导

二、齐次坐标系

齐次坐标系(Homogeneous Coordinates, H.C.) 是投影几何中常用坐标系

与笛卡尔坐标系相比,H.C.表达式更加简练、紧凑

仿射变换、投影变换都可以用一个矩阵表示

无穷远点可以用有限坐标表示

2.1  齐次坐标系的定义

2.2  齐次坐标系与笛卡尔坐标系的转换

2.3  点、线变换

【点与直线的齐次坐标形式】

【求解两条直线的交点】

【求解通过两点的直线】

2.4  齐次坐标系下的几何变换

刚性几何变换本质是坐标变换

齐次坐标系下坐标变化可以表示为如下一般形式

【举例说明】 

1、选择+平移

2、相似/仿射/投影变换 

3、反变换与级联变换

三、相机参数

相机成像所涉及的坐标系有3个:世界坐标系、相机坐标系、图像坐标系。

世界坐标系:用于描述3D场景中物体的坐标,根据任务定义

相机坐标系:以相机中心为原点的坐标系

图像坐标系:图像平面上的坐标系,以图像左上角作为原点

成像过程实质是从世界坐标系到图像坐标系的映射,映射的过程采用相机外参(Extrinsic)和内参(Intrinsic)描述

成像过程: 世界坐标系 -> 相机坐标系 -> 图像坐标系 -> 相机中心

3.1  相机外参

相机外参:从世界坐标系到相机坐标系

相机坐标系与世界坐标系之间存在旋转和平移变换,分别由旋转矩阵𝑹 ∈ ℝ3×3和平移向量𝑻 ∈ ℝ3×1表示

𝑹𝑻6个自由度,被称为相机的外参 (Extrinsic Parameters)、相机的姿态 (Pose)

世界坐标系到相机坐标系的坐标变换关系:

3.2  相机内参

相机内参:从相机坐标系到图像坐标系

引入额外两个参数 𝑘 与 𝑙  (单位是 𝑝𝑖𝑥𝑒𝑙𝑠 / 𝑐𝑚 )

实现图像水平和竖直方向由物理单位到像素单位的转化:

齐次坐标系的表达形式如下:

3.3  世界坐标系 -> 图像坐标系

总结

通过本节的讲解,我们了解了透视投影的概念,学习了齐次坐标系以及其与笛卡尔坐标系的转换,并进一步学习了点线变换和齐次坐标系下的几何变换。在掌握这些基础知识后,我们进一步学习了相机的内外参,从世界坐标系到相机坐标系,再到图像坐标系,为我们后续学习相机标定打下坚实的基础。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/149870.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

今年副业比主业赚得多...

我是从20年开始接触副业的,主要是在程序员外包平台上接单。从一开始的月入0到几百,到现在每个月稳定有小一万的收入。这个月接了一个比较大的项目,结款之后发现今年的副业已经比主业赚得多了,简直美滋滋~ 今年主业收入8w&#xff…

Qt QWebSocket实现JS调用C++

目录 前言1、QWebChannel如何与网页通信2、QWebSocketQWebChannel与网页通信2.1 WebSocketTransport2.2 WebSocketClientWrapper2.3 初始化WebSocket服务器2.4 前端网页代码修改 总结 前言 本篇主要介绍实现JS调用C的另一种方式,即QWebSocketQWebChannel。与之前的…

C#开发的OpenRA游戏之世界存在的属性RenderDebugState(5)

C#开发的OpenRA游戏之世界存在的属性RenderDebugState(5) 前面分析过一个调试的属性,在这里分析另外一个属性,这个属性就是RenderDebugState,它就是用来显示渲染的信息。 跟前面的分析规则可知,属性都是有一个信息类和操作类组成。 在这里信息类叫RenderDebugStateInfo…

Spring6(一):入门案例

文章目录 1. 概述1.1 Spring简介1.2 Spring 的狭义和广义1.3 Spring Framework特点1.4 Spring模块组成 2 入门2.1 构建模块2.2 程序开发2.2.1 引入依赖2.2.2 创建java类2.2.3 创建配置文件2.2.4 创建测试类测试 2.3 程序分析2.4 启用Log4j2日志框架2.4.1 引入Log4j2依赖2.4.2 加…

win10配置单一python版本的sublime运行环境

①新建test.py输入下面代码 import sys print ("Python Version {}".format(str(sys.version).replace(\n, ))) ②Ctrlshiftp选择python ③按下CtrlB

AC修炼计划(AtCoder Regular Contest 162)

传送门:AtCoder Regular Contest 162 - AtCoder A题签到 B - Insertion Sort 2 我们可以从头开始一个一个排序,把1通过操作放到第一个,把2通过操作放到第二个。。。以此类推。但会出现一种情况,如果我们所要排的数字在最后一位&…

面试经典(6/150)轮转数组

面试经典(6/150)轮转数组 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 以下为自己的思路,我不明白最终的返回值为什么有误,好像是题目里要求原地解决问题,而我创…

基于鸽群算法优化概率神经网络PNN的分类预测 - 附代码

基于鸽群算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于鸽群算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于鸽群优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神经网络的光滑…

电子电机行业万界星空科技MES解决方案

现在电子电机行业规模越来越大,也伴随着生产和管理成本走向变高的现象。针对这个问题,mes系统就成为各电子电机制造业的最优选择。 电子机电行业MES涵盖了从原材料采购到最终产品交付的整个过程,包括生产计划、物料管理、生产过程监控、质量…

数字化档案管理系统解决方案

数字化档案管理系统解决方案是指将传统的纸质档案转化为数字化档案,采用计算机和网络技术实现对档案的存储、检索、管理、共享等操作的过程。 专久智能数字化档案管理解决方案及措施可以包括以下几个方面: 1. 采用数字化技术对档案进行数字化处理&#x…

kubernetes--资源调度

目录 一、自动调度 1. Pod 启动创建过程: 2. 调度过程: 2.1 调度分为几个部分: 2.2 常见的预算策略( Predicate ): 2.3 常见的优选策略(priorities): 二、定向调度&…

性能小课堂:Jmeter录制手机app脚本!

环境准备:1.手机2.wifi3.Jmeter 具体步骤: 1、启动Jmeter; 2、“测试计划”中添加“线程组”; 3、“工作台”中添加“HTTP代理服务器”; 4、配置代理服务器:Global Settings下面的端口配置&#xff1a…

Redis 配置文件信息中文翻译版

前言 Redis 配置文件信息中文翻译版,方便大家阅读和理解对应参数信息及配置参数信息 # Redis configuration file example# Note on units: when memory size is needed, it is possible to specify # it in the usual form of 1k 5GB 4M and so forth: # 注意:当…

探索游戏公司跨部门合作的项目管理工具选择

为了实现出色的用户体验,游戏公司需要强大的研发能力和发行运营经验。通常情况下,游戏公司内部有多个独立工作的研发部门和发行部门,它们需要跨部门协作。随着公司快速发展和游戏项目增加,游戏公司迫切需要一套适用于特殊协作流程…

【Java 进阶篇】JQuery 案例:qq表情选择,表达情感的小黄脸

在我们的数字交流时代,表情符号已成为表达情感的重要方式之一。为了丰富用户的输入体验,qq表情选择功能应运而生。通过巧妙运用 JQuery,我们可以在页面中实现一个生动活泼的表情选择框,让用户轻松表达各种情感。本篇博客将深入探讨…

使用postman测试

第一步: 第二步: 第三步:添加请求 第四步:填写请求 代码实现自动关联的位置: 为相关联的接口设置环境: 使用设置的环境变量: 参数化实现测试:测试脚本中仅测试数据不一样&#xff…

6、使用本地模拟器调试项目

本地模拟器推荐内存为16G以上,最低内存要求8G(比较卡顿) 一、安装本地镜像 1、在开发工具的“文件”菜单中选择“设置” 2、在“设置”中选择“SDK”,在右侧勾选“System-image-phone”,点击“应用”开始安装 3、点击…

基于单片机的水位检测系统仿真设计

**单片机设计介绍, 基于单片机的水位检测系统仿真设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的水位检测系统仿真系统是一种用于模拟水位检测系统的工作过程,以验证设计方案的可行性和优…

TiDB单机集群模拟生产环境

1、先部署环境,安装5.4.3版本,详细的安装步骤见官方文档:单机集群模拟生产环境安装教程 配置文件topo.yaml global:user: "tidb"ssh_port: 22deploy_dir: "/tidb-deploy"data_dir: "/tidb-data"monitored:no…

科研学习|研究方法——Python计量Logit模型

一、离散选择模型 莎士比亚曾经说过:To be, or not to be, that is the question,这就是典型的离散选择模型。如果被解释变量时离散的,而非连续的,称为“离散选择模型”。例如,消费者在购买汽车的时候通常会比较几个不…