世界坐标系、相机坐标系、图像物理坐标系、像素平面坐标系

坐标系及其转换在计算机视觉领域占据核心地位。理解如何从一个坐标系转换到另一个坐标系,不仅是理论上的需要,也是实际应用中不可或缺的技能。

一、世界坐标系的定义

世界坐标系是一个全局的坐标系统,用于定义场景中物体的位置。在这个坐标系中,每个物体的位置都是相对于一个全局原点来描述的,单位是m,任意一点的坐标表示为P_{w} = \left [ X_{w}, Y_{w}, Z_{w} \right ]^{T},也称为测量坐标系,是一个三维直角坐标系,以其为基准可以描述相机和待测物体的空间位置,世界坐标系的位置可以根据实际情况自由确定。

二、相机坐标系的定义

相机坐标系是相对于相机的位置来定义物体的坐标系统。在这个坐标系中,原点通常位于相机的光心,即相机镜头的中心。Z轴通常与相机的观察方向一致,与成像平面垂直,X和Y轴定义相机平面,就是以光圈O为原点的右手坐标系,与世界坐标系位于同一空间,只是位置和方向不同,单位是m,任意一点的坐标表示为P_{c} = \left [ X_{c}, Y_{c}, Z_{c} \right ]^{T}

三、图像物理坐标系的定义

如二中图所示,物理成像平面上的坐标系就是图像物理坐标系,是一个二维坐标系,原点在成像平面的中心,单位是mm,相当于用物理单位描述像素的位置,其中任意一点的坐标可表示为p = \left [ x, y \right ]^{T}

四、像素平面坐标系的定义

像素坐标系是图像上的二维坐标系统,用于定义图像上每个像素的位置。原点通常位于图像的左上角,X轴从左到右延伸,Y轴从上到下延伸,单位是像素,从图像物理坐标系到像素平面坐标系存在一个缩放和平移,其中任意一点的坐标表示为p = \left [ u, v \right ]^{T}

五、世界坐标系到像素平面坐标系的转换

5.1 先从世界坐标系转换到相机坐标系

二者处于同一空间,所以只需要平移和旋转,通过W2C外参矩阵完成,假设世界坐标系中的点为\left ( X_{w}, Y_{w}, Z_{w} \right ),相机坐标系中的点为\left ( X_{c}, Y_{c}, Z_{c} \right ),转换过程如下:

                                                   \begin{pmatrix} X_{c}\\ Y_{c}\\ Z_{c}\\ 1 \end{pmatrix}= W2C\begin{pmatrix} X_{w}\\ Y_{w}\\ Z_{w}\\ 1 \end{pmatrix} 

其中:

                                                         W2C = \begin{pmatrix} R &T \\ 0& 1 \end{pmatrix}

R是3*3的旋转矩阵,描述相机的旋转;

T是3*1的平移向量,描述相机在世界坐标系中的位置;

从世界坐标系转换到相机坐标系最终的转换公式如下(涉及到齐次坐标,有空更新):

                                                  \begin{pmatrix} X_{c}\\ Y_{c}\\ Z_{c}\\ 1 \end{pmatrix}= \begin{pmatrix} R &T \\ 0& 1 \end{pmatrix}\begin{pmatrix} X_{w}\\ Y_{w}\\ Z_{w}\\ 1 \end{pmatrix}

这一步完成后,就得到点在相机坐标系中的坐标\left ( X_{c}, Y_{c}, Z_{c} \right )

5.2 从相机坐标系到图像物理坐标系

相似那部分重点查看,这篇文章。

根据相似三角形得到的关系式如下:

                                                         \frac{Z_{c}}{f} = \frac{X_{c}}{x} = \frac{Y_{c}}{y}

                                                      x = f\frac{X_{c}}{Z_{c}} , y = f\frac{Y_{c}}{Z_{c}}

齐次坐标表示:

                                        Z_{c}\begin{pmatrix} x\\ y\\ 1 \end{pmatrix}= \begin{pmatrix} f &0&0&0 \\ 0&f &0&0 \\ 0&0 &1&0 \end{pmatrix}\begin{pmatrix} X_{c}\\ Y_{c}\\ Z_{c}\\ 1 \end{pmatrix}

5.3 从图像物理坐标系到像素坐标系

                                          

像素坐标系和图像坐标系都在成像平面上,只是各自的原点和度量单位不一样。

图像坐标系的原点为相机光轴与成像平面的交点,通常情况下是成像平面的中点;

像素坐标系的原点在成像平面的左上角;
图像坐标系的单位是mm,是物理单位,而像素坐标系的单位是pixel,我们平常描述一个像素点都是几行几列。所以这两者之间的转换关系如下:

齐次坐标表示:

                                                        \begin{pmatrix} u\\ v \\ 1 \end{pmatrix}= \begin{pmatrix} \frac{1}{dx} &0 & u_{0}\\ 0&\frac{1}{dy} &v_{0} \\ 0 &0 &1 \end{pmatrix}\begin{pmatrix} x\\ y \\ 1 \end{pmatrix}

将以上步骤结合在一起,可以得到从世界坐标系到图像坐标系的完整转换公式:

综上所述,存在的疑惑就是:

1、世界坐标系怎么确定?

分不分静态的相机和运动的相机?

2、相机内参,外参怎么样计算?

相机内参的获取通常通过相机标定过程来实现。‌‌

相机内参的定义和作用

相机内参是与相机自身特性相关的参数,主要包括参数矩阵(如fx, fy, cx, cy)以及畸变参数(如k1, k2, k3, p1, p2)。这些参数在相机出厂时通常已被标定,并存储在设备的Flash中。,帮助将三维世界坐标转换到二维图像坐标。

获取相机内参的方法

  1. 通过相机标定获取内参‌:最常见的获取相机内参的方法是通过相机标定。标定过程通常使用棋盘格等标定图案,通过图像处理和数学计算来估算内参。具体步骤包括拍摄多张标定图案的图片,使用标定算法(如张正友标定法)计算内参。

  2. 使用现成的标定工具或软件‌:许多相机厂商提供了标定工具或软件,用户可以通过这些工具进行标定以获取相机的内参。例如,OpenCV提供了丰富的相机标定函数,用户可以通过编写代码实现标定过程。

  3. 通过API获取‌:一些相机设备在出厂时已经标定好内外参,并存储在设备的Flash中。用户可以通过调用设备的API获取这些参数,而无需重新标定。

参考:

https://zhuanlan.zhihu.com/p/128155013

https://blog.csdn.net/m0_51661400/article/details/141395396

世界坐标系到像素坐标系的转换_世界坐标系转相机坐标系-CSDN博客

https://zhuanlan.zhihu.com/p/356546894

https://blog.csdn.net/mzpmzk/article/details/64924017

https://zhuanlan.zhihu.com/p/681072094

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

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

相关文章

03-axios常用的请求方法、axios错误处理

欢迎来到“雪碧聊技术”CSDN博客! 在这里,您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者,还是具有一定经验的开发者,相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导,我将…

Redis/Codis性能瓶颈揭秘:网卡软中断的影响与优化

目录 现象回顾 问题剖析 现场分析 解决方案 总结与反思 1.调整中断亲和性(IRQ Affinity): 2.RPS(Receive Packet Steering)和 RFS(Receive Flow Steering): 近期,…

openwebui使用

文章目录 1、feature2、安装使用2.1 安装过程2.2 安装好后 1、feature 可以加载多个大模型 同时回复 模型问答: 使用vLLM框架部署模型,再使用Open WebUI直接进行模型问答 多模型支持: 多模型回复比对(Qwen2-72B-Instruct, llama3-70b-8192, mixtral-8x7…

汽车资讯新引擎:Spring Boot技术领航

3系统分析 3.1可行性分析 通过对本汽车资讯网站实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本汽车资讯网站采用SSM框架,JAVA作为开发语言&#…

应用系统开发(12) Zync中实现数字相敏检波

在 Xilinx Zynq 系列(如 Zynq-7000 或 Zynq UltraScale+)中实现数字相敏检波(DSP,Digital Synchronous Detection)可以通过硬件(PL部分,FPGA逻辑)和软件(PS部分,ARM Cortex-A 处理器)的协同工作来实现。以下是一个详细的设计方法,包括基本原理和 Zynq 的实现步骤。…

《译文》2024年11月数维杯国际大学生数学建模挑战赛题目

# 赛题正式发布 2024年第十届数维杯国际大学生数学建模挑战赛顺利开赛,竞赛开始时间为北京时间2024年11月15日09:00至北京时间2024年11月19日09:00,共计4天,竞赛题目正式发布,快来一起围观,你认为今年的哪个题目更具有…

apk反编译修改教程系列-----apk应用反编译中AndroidManifest.xml详细代码释义解析 包含各种权限 代码含义【二】

💝💝💝💝在上期博文中解析了一个常规apk中 AndroidManifest.xml的权限以及代码。应粉丝需求。这次解析一个权限较高的apk。这款apk是一个家长管控的应用。需求的各种权限较高。而且通过管控端可以设置控制端的app隐藏与否。 通过博文了解💝💝💝💝 1💝💝…

【UGUI】背包的交互01(道具信息跟随鼠标+道具信息面板显示)

详细程序逻辑过程 初始化物品栏: 在 Awake 方法中,通过标签找到提示框和信息面板。 循环生成10个背包格子,并为每个格子设置图标和名称。 为每个格子添加 UInterMaager232 脚本,以便处理交互事件。 关闭提示框和信息面板&#…

Docker: ubuntu系统下Docker的安装

安装依赖 操作系统版本 Ubuntu Kinetic 22.10Ubuntu Jammy 24.04 (LTS)Ubuntu Jammy 22.04 (LTS)Ubuntu Focal 20.04 (LTS)Ubuntu Bionic 18.04 (LTS) CPU架构支持 ARMx86_64 查看我们的系统版本信息 uname -a通过该命令查得cpu架构是x86_64的; cat /etc/*re…

Nacos 配置中心变更利器:自定义标签灰度

作者:柳遵飞 配置中心被广泛使用 配置中心是 Nacos 的核心功能之一,接入配置中心,可以实现不重启线上应用的情况下动态改变程序的运行期行为,在整个软件生命周期中,可以极大降低了软件构建及部署的成本,提…

基于RK3568J多网口电力可信物联网关解决方案

前言 随着工业物联网的普及和功能越来越强大,边缘计算网关应运而生。 边缘计算有效降低了云端服务器的负载、大大降低了带宽的占用,同时也为本地化的区域自治提供了便利条件。 边缘计算网关,完美地发挥了“边”与“端” 结合优势&#xff0c…

无人机飞手入门指南

无人机飞手入门指南旨在为初学者提供一份全面的学习路径和实践建议,帮助新手快速掌握无人机飞行技能并了解相关法规知识。以下是一份详细的入门指南: 一、了解无人机基础知识 1. 无人机构造:了解无人机的组成部分,如机身、螺旋桨…

网络传输:网卡、IP、网关、子网掩码、MAC、ARP、路由器、NAT、交换机

目录 网卡IP网络地址主机地址子网子网掩码网关默认网关 MACARPARP抓包分析 路由器NATNAPT 交换机 网卡 网卡(Network Interface Card,简称NIC),也称网络适配器。 OSI模型: 1、网卡工作在OSI模型的最后两层,物理层和数据链路层。物…

多账号登录管理器(淘宝、京东、拼多多等)

目录 下载安装与运行 解决什么问题 功能说明 目前支持的平台 功能演示 登录后能保持多久 下载安装与运行 下载、安装与运行 语雀 解决什么问题 多个账号的快捷登录与切换 功能说明 支持多个电商平台支持多个账号的登录保持支持快捷切换支持导入导出支持批量删除支持…

你可以通过以下步骤找到并打开 **Visual Studio 开发者命令提示符**:

你可以通过以下步骤找到并打开 Visual Studio 开发者命令提示符: 1. 通过开始菜单查找 打开 开始菜单(点击屏幕左下角的 Windows 图标)。在搜索框中输入 Developer Command Prompt。你应该看到以下几种选项(具体取决于你的 Visu…

版本控制【Git Bash】【Gitee】

目录 一、什么是版本控制? 二、版本控制的种类: 1、本地版本控制 2、集中版本控制 3、分布式版本控制 三、下载Git Bash 四、Git Bash 配置 五、Git Bash使用 1、切换目录:cd 2.查看当前文件路径:pwd 3.列出当前目录下文件…

大数据-226 离线数仓 - Flume 优化配置 自定义拦截器 拦截原理 拦截器实现 Java

点一下关注吧!!!非常感谢!!持续更新!!! Java篇开始了! 目前开始更新 MyBatis,一起深入浅出! 目前已经更新到了: Hadoop&#xff0…

【3D Slicer】的小白入门使用指南九

定量医学影像临床研究与实践 任务 定量成像教程 定量成像是从医学影像中提取定量测量的过程。 本教程基于两个定量成像的例子构建: - 形态学:缓慢生长肿瘤中的小体积变化 - 功能:鳞状细胞癌中的代谢活动 第1部分:使用变化跟踪模块测量脑膜瘤的小体积变化第2部分:使用PET标…

Visual Studio 圈复杂度评估

VisualStudio自带的有工具 之后就可以看到分析结果

计算机毕业设计 | SpringBoot+vue城镇保障性住房管理 公租房系统(附源码+论文)

1,绪论 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理城镇保障性住房管理系统的相关信…