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

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

转载:http://blog.csdn.net/wangxiaokun671903/article/details/37966891

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

       世界坐标系、相机坐标系、图像物理坐标系、图像像素坐标系在我的另一篇博文里已经详细叙述。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、转换过程总公式如下

相关文章:

  • 相机去畸变,以及双目平行校正----极线校正(一)————之单目畸变校正详细过程
  • 摄像机模型与标定—棋盘、亚像素角点和绘制棋盘角点
  • 摄像机模型与标定——单应性
  • 摄像机模型与标定——摄像机标定
  • 摄像机模型与标定——标定函数
  • 摄像机模型与标定——三个坐标系及其之间关系
  • 推导四对对应点单应矩阵的计算公式?
  • 透视投影中已知两平面的单应矩阵,能否求出这两平面的夹角?
  • 相机标定的网页收纳
  • 机器视觉的相机标定到底是什么?
  • 摄像机标定--矫正畸变
  • 机器学习(Machine Learning)深度学习(Deep Learning)资料汇总
  • 机器学习(Machine Learning)深度学习(Deep Learning)资料(下)
  • 【深度学习Deep Learning】资料大全
  • 【机器学习Machine Learning】资料大全
  • (三)从jvm层面了解线程的启动和停止
  • Angular 响应式表单 基础例子
  • Consul Config 使用Git做版本控制的实现
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • 阿里研究院入选中国企业智库系统影响力榜
  • 半理解系列--Promise的进化史
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 从零搭建Koa2 Server
  • 漂亮刷新控件-iOS
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 前端之Sass/Scss实战笔记
  • 设计模式 开闭原则
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 我是如何设计 Upload 上传组件的
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • 带你开发类似Pokemon Go的AR游戏
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • (09)Hive——CTE 公共表达式
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (四)c52学习之旅-流水LED灯
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (转)原始图像数据和PDF中的图像数据
  • .htaccess配置重写url引擎
  • .net分布式压力测试工具(Beetle.DT)
  • .net流程开发平台的一些难点(1)
  • .NET下ASPX编程的几个小问题
  • /deep/和 >>>以及 ::v-deep 三者的区别
  • @Bean有哪些属性
  • @ResponseBody
  • [ 隧道技术 ] 反弹shell的集中常见方式(二)bash反弹shell
  • [ 网络基础篇 ] MAP 迈普交换机常用命令详解
  • [.NET]桃源网络硬盘 v7.4
  • [20180312]进程管理其中的SQL Server进程占用内存远远大于SQL server内部统计出来的内存...
  • [Assignment] C++1
  • [boost]使用boost::function和boost::bind产生的down机一例
  • [C#]无法获取源 https://api.nuge t.org/v3-index存储签名信息解决方法
  • [C/C++]数据结构 栈和队列()
  • [ios-必看] IOS调试技巧:当程序崩溃的时候怎么办 iphone IOS