一、什么是齐次坐标和齐次坐标系

齐次坐标

齐次坐标是一个相机标定问题的关键理论之一,所以就此问题分析一下。
单从定义上来讲,齐次坐标(投影坐标)就是用N+1维来代表N维坐标(点和向量),也可说用齐次坐标来表示笛卡尔坐标,具体的数学表达式可以这样写:
在直角坐标系点坐标(x,y)末尾加上一个额外的变量w,一个点(X,Y)在齐次坐标里面变成了(x,y,w),并且有
X = x/w
Y = y/w
这也就解决了笛卡尔坐标系无法表示无穷远点的问题,按照人的视觉,两条平行线在无穷远处会相交,采用直角坐标系无法对这一现象进行描述,而当w趋近于0时,(X,Y)趋向无穷大,其齐次坐标就可表示为(x,y,0),解决了这一问题。

于此同时衍生了另外一个问题,笛卡尔坐标和齐次坐标转换的问题:
(1) 笛卡尔坐标转换成齐次坐标,需要考虑坐标是点还是向量的问题,如果(x,y)是个点,就可变为(x,y,1);而如果(x,y)是个向量,则变为(x,y,0)
(2) 齐次坐标转换成笛卡尔坐标,如果是(x,y,2),则其笛卡尔坐标为(x/2,y/2);
如果是(x,y,0),其笛卡尔坐标仍为(x,y)。
齐次坐标(针对二维)因此有如下定义:

  1. 投影平面上的任何点都可以表示成 (X, Y, Z),称之为该点的’齐次坐标或投影坐标,其中 X、Y 及 Z 不全为 0。
  2. 以齐次坐标表表示的点,若该坐标内的数值全乘上一相同非零实数,仍会表示该点。
  3. 相反地,两个齐次坐标表示同一点,当且仅当其中一个齐次坐标可由另一个齐次坐标乘上一相同非零常数得取得。
  4. 当 Z 不为 0,则该点表示欧氏平面上的 (X/Z, Y/Z)。
  5. 当 Z 为 0,则该点表示一无穷远点。
  6. 三元组 (0, 0, 0) 不表示任何点。原点表示为 (0, 0, 1)。

齐次坐标系

那怎么从空间上去理解齐次坐标系呢?
有个说法挺有意思,我们想象在宇宙中有一个绝对坐标系,对于我们现在使用的笛卡尔坐标系,其原点位于(0,0)点,当然同时也就还有无数的相同的坐标系,只不过它们的原点不同,对于笛卡尔坐标系中的点(x,y),它对于所有的笛卡尔坐标系都是相同的,有点多维宇宙的感觉,其中一个坐标系就是一个宇宙。

二、齐次坐标的作用

看了不少文章,基本都有这么一句话来概况其作用:齐次坐标表示是计算机图形学的重要手段之一,它既能够用来明确区分向量和点,同时也更易用于进行仿射(线性)几何变换。
齐次坐标在计算机图形学中有重要应用,可以用来区分向量和点,上面已经解释了点和向量的区别问题,其仿射变换主要应用如下:

2.1 "平移矩阵"扩展为3维

在图像处理时,经常会对图像进行平移操作,就会采用矩阵的形式进行计算。通过对坐标点进行齐次变换,可以将平移矩阵用3维方式进行表达,可以。
平移可表示为:
[x2y2]\begin{bmatrix} x2\\ y2\end{bmatrix}[x2y2​]=[x1y1]\begin{bmatrix} x1\\ y1\end{bmatrix}[x1y1​]+[x0y0]\begin{bmatrix} x0\\ y0\end{bmatrix}[x0y0​]
齐次变换后:
[x2y21]\begin{bmatrix} x2\\ y2\\1\end{bmatrix}⎣⎡​x2y21​⎦⎤​=[10x001y0001]\begin{bmatrix} 1&0&x0\\ 0&1&y0\\0&0&1\end{bmatrix}⎣⎡​100​010​x0y01​⎦⎤​*[x1y11]\begin{bmatrix} x1\\ y1\\1\end{bmatrix}⎣⎡​x1y11​⎦⎤​

2.2 旋转,缩放

旋转
对一个点绕原点逆时针旋转一个角度,用矩阵的形式表达为:



缩放

参考文章:
关于齐次坐标系的理解
齐次坐标的理解
齐次坐标变换

相机标定(一) —— 深入理解齐次坐标及其作用相关推荐

  1. 原创 | 《相机标定》深入理解原理与实战(一)

    第 一 章 引言 1.1 为什么要相机标定 首先来看相机标定的意义,我们都知道,我们拍摄的图片是二维的,但是真实世界是三维的.一个场景是如何从三维变成二维的呢?相机起到的就是这个作用.我们可以把相机看 ...

  2. 【相机标定推导】关于齐次坐标的理解(经典)

    https://blog.csdn.net/janestar/article/details/44244849

  3. 相机标定(二)深入理解四大坐标系与其变换关系

    一.前言 视觉系统一共有四个坐标系:像素平面坐标系(u,v).图像坐标系(x,y).相机坐标系(Xc,Yc,Zc)和世界坐标系(Xw,Yw,Zw),如下图所示.每种坐标系之间均存在联系,那么如何通过图 ...

  4. 物体尺寸检测项目--相机标定(像素坐标系/实际程序关键理解)

    相机标定的三个坐标系变化看得比较吃力(线性代数都还回去了). 历时3个礼拜,断断续续今天终于算是成功跑出程序,做个小结. 一.坐标系的理解 还是有必要理解一下这个坐标系的关系:一共四个:分别是世界坐标 ...

  5. 相机标定的理解及采用opencv和matlab工具箱的标定方法

    一.相机标定的目的 确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,建立摄像机成像的几何模型,这些几何模型参数就是摄像机参数. 二.通用摄像机模型 世界坐标系.摄像机坐标系和像平面 ...

  6. matlab相机标定工具箱进行相机标定,相机标定的理解及采用opencv和matlab工具箱的标定方法...

    一.相机标定的目的 确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,建立摄像机成像的几何模型,这些几何模型参数就是摄像机参数. 二.通用摄像机模型 世界坐标系.摄像机坐标系和像平面 ...

  7. 深入理解halcon相机标定

    目录 相机标定简介 深度说明 1.相机标定参数介绍 2.标定板详细介绍 问题1:halcon是否只能使用halcon专用的标定板? 问题2:halcon标定板如何生成? 问题3:halcon标定板如何 ...

  8. matlab相机标定畸变参数,相机标定的原理与意义及OpenCVMatlab实现差异小结.doc

    2011-01-30 相机标定的原理与意义及OpenCV.Matlab实现差异小结 分类:?OpenCV点滴2011-01-30 20:35?2292人阅读?评论(3)?收藏?举报 ??? 本文是一篇 ...

  9. 相机标定的来龙去脉(详解标定原理、畸变矫正原理、使用经验)

    目录 1.相机标定的意义 2.坐标系的变换 2.1.小孔成像的原理 2.2.各个坐标系的定义 2.2.1.像素坐标系 2.2.2.图像坐标系 2.2.3.相机坐标系 2.3.相机的内参和外参 3.图像 ...

最新文章

  1. R语言绘制核密度图实战(Kernel Density Plot)
  2. 人类“换头术”现在就是一场炒作 但医学界不会放弃研究
  3. 检查集群状态命令_巨杉数据库SequoiaDB巨杉Tech | 四步走,快速诊断数据库集群状态...
  4. python大数字计算时没有响应_linux-为什么在尝试计算非常大的数字时Python会“抢先”挂起?...
  5. linux系统指令学习
  6. stm32搭建mqtt_STM32+ESP8266+AIR202基本控制篇-102-服务器基本搭建-安装MQTT软件(.Windows系统)...
  7. 安徽工程大学计算机控制,(完整版)安徽工程大学期末考试《计算机控制技术》范围总结2 .pdf...
  8. Oracle 分析函数的使用(主要是rollup用法)
  9. 熬,是人生最深的滋味
  10. mysql 5.6 默认密码_mysql5.6配置及修改密码
  11. 利用CDLinux里面的水滴破解路由器密码的教程
  12. pmp十大知识领域,49个过程的4W1H
  13. 淘宝上买东西,怎么买最便宜?
  14. 【渝粤教育】电大中专计算机职业素养 (11)作业 题库
  15. 百度云重置服务器密码,单台或多台腾讯云服务器 CVM 重置实例密码教程
  16. 14年macmini装双硬盘_Mac mini 2014版(中配)更换固态硬盘
  17. 中学计算机老师资质,2016下半年教师资格证考试中学信息技术备考指导
  18. 【全网最暴力解决方案】使用gdb调试时遭遇“Missing separate debuginfos, use: debuginfo-install glibc....”报错信息
  19. python地产成本_Python3抓取 深圳房地产均价数据,通过真实数据为购置不动产做决策分析(二)...
  20. C++小课堂:STL中的栈容器(stack)

热门文章

  1. eclipse 不能切换输入法
  2. 在Android命令行启动程序的方法
  3. 如何在webservice中取得sesssionid
  4. xcode8 升级后注释快捷键不能使用的解决方法
  5. Leetcode No.146 ****
  6. Mac iOS 允许从任何来源下载应用并打开
  7. redis(一)--认识redis
  8. 图像连通域标记算法研究
  9. 对象关系映射(ORM)及代码生成器和插件C#源码(DBFrameworkV4.5.3)
  10. Sery送的书与网站短信解决方案