相机针孔模型----从世界坐标系,到相机坐标系,再到图像物理坐标系,最后到图像像素坐标系的转换过程解析

2023-05-16

       看了很多讲解针孔相机模型中从世界坐标系--->到相机坐标系——>图像坐标系的文章,心里的疑惑也逐渐展开,现在总结一下自己的理解:

       世界坐标系、相机坐标系、图像物理坐标系、图像像素坐标系在我的另一篇博文里已经详细叙述。http://blog.csdn.net/wangxiaokun671903/article/details/37935113。他们之间的关系如下图所示:




从世界坐标系到图像坐标系的转换过程如下:

 

1、世界坐标系通过外参矩阵转换到相机坐标系

       空间中一点的世界坐标系为:[Xw,Yw,Zw]T,当把它转换到相机坐标系的时候,先把它加一维用齐次坐标来表示它(这样就方便对它本身进行平移操作)。左乘一个3x4的外参矩阵,从世界纵坐标系转换到相机坐标系。


       [Xc,Yc,Zc]T表示相机坐标。[Xw,Yw,Zw,1]T表示归物体所在的世界坐标。R表示旋转矩阵,T表示平移矩阵。

 

2、相机坐标系通过内参矩阵转换到图像像素坐标系:这一步是通过两步完成的。


     

    (1),径向畸变和切向畸变:

    

     其中,k1,k2,k3径向畸变系数,p1,p2是切向畸变系数。畸变发生在相机坐标系转图像物理坐标系的过程中。操作的对象时相机坐标系。

        这一步是加入畸变的过程,如果忽略这一步,可以直接跳到下一步。


   (2),相机坐标系通过焦距对角矩阵和畸变系数转换到图像物理坐标系;

由图相似三角形可得:

       f表示焦距。[Xc,Yc,Zc]T表示相机坐标。[x,y,1]T表示归一化后的图像物理坐标。

 

    (3),图像物理坐标系通过像素转换矩阵转换到像素坐标系中。这一步是在同一个平面上做的,只不过先换了表示单位,又换了坐标原点的位置。


     dx和dy表示:x方向和y方向的一个像素分别占多少个(可是小数)长度单位。u0,v0表示图像的中心像素坐标和图像原点像素坐标之间相差的横向和纵向像素数

 

3、转换过程总公式如下





本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

相机针孔模型----从世界坐标系,到相机坐标系,再到图像物理坐标系,最后到图像像素坐标系的转换过程解析 的相关文章

  • 【爱上Linux】第一课 Linux概述

    学习应该是快乐的事情 快乐的东西应该要分享开来 xff0c 人人都快乐 xff01 爱上Linux 第一课 Linux概述 在本课中 xff0c 和朋友们一起来思考这些问题 问题一 xff1a 谈Linux学习 xff1f 从四个方面来看
  • 链表的创建与遍历

    链表 xff0c 简而言之 xff0c 就是基于链式储存结构下的线性表 链表包括单向链表 双向链表以及循环链表 链表是一种很常用的数据结构 xff0c 其定义如下 xff1a 单向链表的定义 定义说明 xff1a 包括数据域和指针域 typ
  • Java异常机制

    Java异常 xff08 Exception xff09 又称例外 xff0c 是一种运行时错误 Java异常机制就是对于Java异常的处理方法 xff0c 使用Java异常机制能提升程序的容错性 xff0c 从而使程序更加健壮与安全 ja
  • Java序列化与反序列化

    Java序列化与反序列化是什么 xff1f 为什么需要序列化与反序列化 xff1f 如何实现Java序列化与反序列化 xff1f 本文围绕这些问题进行了探讨 1 Java序列化与反序列化 Java序列化是指把Java对象转换为字节序列的过程
  • Java语言中几个常用的包

    Java采用包结构来组织和管理类和接口文件 本文介绍Java语言类库中几个常用的包 xff0c 因为这几个包在软件开发与应用中经常需要用到 xff0c 其中有些包是必要的 若是离开它 xff0c 还真不能做事情了 第一个包 xff1a ja
  • 计算机网络

    Cname和A记录 CNAME和A记录 A记录 Address记录 xff0c 代表指向关系 www xx com 1 1 1 1 www yy com 2 2 2 2 CNAME cname 代表一种映射关系 www yy com www
  • AI芯片面试总结

    基础书籍有哪些 xff1f 重点章节以及概念 xff1f 计算机体系结构 量化研究方法 xff1b 计算机组成与设计 软硬件接口 xff1b deep learning 深度学习 xff1b python xff1b CMOS数字集成电路
  • Android的系统架构

    Android的系统架构采用了分层架构的思想 xff0c 如图1所示 从上层到底层共包括四层 xff0c 分别是应用程序程序层 应用框架层 系统库和Android运行时和Linux内核 图1 xff1a Android系统架构图 每层功能简
  • ensp实验一网络设备基本操作

    实验一 网络设备基本操作 一 实验目的 熟悉网络设备的基本配置 xff1b 掌握网络设备文件系统管理 xff1b 掌握设备的基本调试方法 二 实验学时及环境 1 实验学时 xff1a 2 2 操作系统 xff1a Windows 3 模拟环
  • sudo rosdep init出错 rosdepc update的解决方案

    https mp weixin qq com s VGs8oWdhHH6XsHcx21lN4Q 或者搜索 本文之后 xff0c 世上再无rosdep更新失败问题 xff01 如果有 小鱼就
  • pixhawk学习笔记---创建新的应用程序

    最近转到无人机领域的开发中 xff0c 感觉和以往搞android驱动差别比较大 xff0c 以前搞android驱动的时候网上的资料满天飞 xff0c 但是现在关于飞控相关的资料却少之又少 xff0c 一些资料都是从原理上入手 xff0c
  • 伽马贝塔函数

    在数理方程 概率论等学科经常遇到以下的含参变量的积分 xff0c 它们依次为第一类和第二类欧拉 xff08 Euler 1707 1783瑞士数学家 xff09 积分 xff0c 或依次称为贝塔 xff08 Bata xff09 函数和伽马
  • http-parser用法

    头文件说明 xff1a 解析类型定义 xff1a enum http parser type HTTP REQUEST HTTP RESPONSE HTTP BOTH 解析函数声明 xff1a void http parser init h
  • gazebo崩溃

    1 虚拟机下打开gazebo报错 xff1a VMware vmw ioctl command error Invalid argument INFO 1610283240 619937255 0 180000000 LeePosition
  • k8s中文网站

    https www kubernetes org cn doc 11
  • 【平衡车】PID控制原理到底如何理解?建议收藏!

    文章目录 前言PID算法PID算法的形成P算法 xff0c 即比例控制算法 I算法 xff0c 即积分控制算法D算法 xff0c 即微分控制算法PID总体的数学模型 xff1a 基于单片机的PID控制算法 xff1a 单片机中的PID算法的
  • 嵌入式C语言修炼之道.屏幕操作篇

    汉字处理 现在要解决的问题是 xff0c 嵌入式系统中经常要使用的并非是完整的汉字库 xff0c 往往只是需要提供数量有限的汉字供必要的显示功能 例如 xff0c 一个微波炉的LCD上没有必要提供显示 34 电子邮件 34 的功能 xff1
  • CDN—内容分发网络

    CDN 1 含义 CDN的全称是Content Delivery Network xff0c 即内容分发网络 CDN是构建在现有网络基础之上的智能虚拟网络 xff0c 依靠部署在各地的边缘服务器 xff0c 通过中心平台的负载均衡 内容分发
  • BeautifulSoup

    代码 xff1a from bs4 import BeautifulSoup 一个html格式的内容 doc 61 39 lt html gt lt head gt lt title gt Page title lt title gt lt
  • Ubuntu Server 22.04.1配置(配置root账号、设置固定IP、更改SSH端口、配置UFW、VM扩展磁盘后Ubuntu的扩容)

    为了能快速的创建虚拟机 xff0c 通过VM创建了一个2核CPU 4G内存 40G硬盘 xff0c 安装Ubuntu Server 22 04 1的虚拟机 xff0c 以便在需要的时候随时克隆一个新的虚拟机出来 在新的虚拟机克隆出来后可能会

随机推荐

  • 使用ado连接orical数据库

    使用ADO连接数据库有三种方法 xff1b 方案1 安装Orical数据库软件比方说说oracle 11g R2 32位软件 这里有一个需要注意的地方就是如果你编译的是win32如下图 xff0c 那么就必须要使用32位的数据库软件 其实在
  • QT操作 influxdb时序数据库(libcur)

    概述 最近在项目中需要用到influxdb 数据库 xff0c 当时使用了libcur库之后 xff0c 插入数据的速度一直不太理想 创建字表的速度 1W的话需要11Min xff0c 对于这样的时间完全达不到合格 经过研究进行了打包处理
  • linux中的环境变量

    临时添加环境变量的方法 exprort PATH 61 usr lib PATH export fnp 变量名称 61 变量设置值 参数说明 xff1a f 代表 变量名称 中为函数名称 n 删除指定的变量 变量实际上并未删除 xff0c
  • Linux(openEuler)没有界面连接互联网方法

    前言 系统版本openEuleropenEuler 22 03 LTS x86 64 dvd 我们在安装linux之后 xff0c 一般都是无界面的情况 大部分情况都是需要自己安装界面的 xff0c 如果路由器的情况下直接插上网络就好了 下
  • c#实现内存映射文件共享内存

    内存映射文件是利用虚拟内存把文件映射到进程的地址空间中去 xff0c 在此之后进程操作文件 xff0c 就像操作进程空间里的地址一样了 xff0c 比如使用c语言的 memcpy等内存操作的函数 这种方法能够很好的应用在需要频繁处理一个文件
  • c#Gdi画图的两种方式

    用Graphics绘图的两种方法 在学习C 画图的时候非常的蛋疼 其中的一条原因是之前没有搞过 xff0c 其中之二是办公的环境有点差 这就是我找的2种学习非常蛋疼的原因 虽然是这样但是学还是要学的 本篇文章都是在xxx paint obj
  • 一个小巧的C++Log输出到文件类

    一个小巧的C 43 43 Log输出到文件类 xff08 转 xff09 作者 xff1a wangyin159 http www cnblogs com mazhenyu p 4139352 html 一个小巧的C 43 43 Log输出
  • beego创建项目

    span class token comment 安装beego框架 span go get u github com beego beego v2 span class token comment 安装bee工具 span go get
  • 我的C++回调函数的理解

    今天在看一个多线程下载文件的代码时 xff0c 让我很头痛 因为该程序中运用了大量的回调函数 在我们学习一种技术的时候我们就要去知道几个问题 1 回调函数是什么东西 xff1f 2 回调函数怎么开发 xff0c 怎么使用 xff1f 3 回
  • c++ 中文和十六进制的互转

    CString CHexAndStrDlg StrToHex CString strData 初始化 CString strTemp 61 34 34 int iLenth 61 strData GetLength char cArrDat
  • 一篇文章,中文发完英文发,算“一稿多投”吗?

    近期有作者问小编 xff08 www unionpub cn xff09 xff0c 为什么有人换种语言 xff0c 发表了两篇同样内容的文章 而不算 34 一稿多投 34 一稿多投 是被明确禁止的 xff0c 但上述 34 二次发表 的行
  • 【CCF推荐专区】计算机类优质SCI&EI好刊,期刊质量高,部分期刊仅有少量版面

    x1f308 智能传感类 xff08 TOP xff09 CCF C类 期刊简介 IF 7 0 8 0 xff0c JCR1区 xff0c 中科院2 1区 检索情况 SCI amp EI 双检 xff0c 正刊 xff0c CCF C类 征
  • 考研杭电非全计算机技术调剂上岸

    考研杭电非全计算机技术调剂上岸 简介初试考完心态复试写这个的目的 简介 昨天看见杭电考研群里说到传承 xff0c 我觉得很有价值 xff0c 所以打算也写了我的一些想法 xff0c 希望对你们有帮助 本人31岁 xff0c 有老婆有孩子 x
  • 各种滤波算法的比较

    原文地址 xff1a http www wtoutiao com p 1fe9dPI html xfeff 各种滤波算法的比较 数字滤波 digital filtering 数字滤波 digital filtering 用数字设备 xff0
  • 十九.Linux开发之根文件系统移植——根文件系统的原理

    有道云笔记地址 xff1a 详情看这里链接 xff0c 记录太多 xff0c 就不一一排版了 http note youdao com noteshare id 61 f9c7c1b589233d7b6ed661c3749f1ce8 amp
  • (转)临界区,互斥量,信号量,事件的区别(线程同步)

    四种进程或线程同步互斥的控制方法 1 临界区 通过对多线程的串行化来访问公共资源或一段代码 xff0c 速度快 xff0c 适合控制数据访问 2 互斥量 为协调共同对一个共享资源的单独访问而设计的 3 信号量 为控制一个具有有限数量用户资源
  • Git clone的使用方法

    使用Git clone项目 1 首先我们要确保我们的电脑上已经安装Git 桌面点击右键出现如下图所示的两个Git即Git已经安装 2 在电脑的任意一个磁盘里新建一个本地文件夹作为clone项目的保存文件夹 3 在码云上面打开我们要clone
  • error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”

    报错1 xff1a error LNK2038 检测到 ITERATOR DEBUG LEVEL 的不匹配项 值 0 不匹配值 2 解决 xff1a xff08 1 xff09 工程的模式和库的模式不一致 xff0c 工程为Debug模式
  • 关于p操作和v操作的理解

    操作系统之PV操作 今天在做操作系统老师布置的操作系统作业 xff0c 但是碰到了一个有关pv操作的问题 xff0c 由于对pv操作的理解不是很透彻 xff0c 所以我查阅了很多资料 xff0c 下面来简单的通俗的介绍一下pv操作 1 信号
  • 相机针孔模型----从世界坐标系,到相机坐标系,再到图像物理坐标系,最后到图像像素坐标系的转换过程解析

    看了很多讲解针孔相机模型中从世界坐标系 gt 到相机坐标系 gt 图像坐标系的文章 xff0c 心里的疑惑也逐渐展开 xff0c 现在总结一下自己的理解 xff1a 世界坐标系 相机坐标系 图像物理坐标系 图像像素坐标系在我的另一篇博文里已