问题:两条平行线可以相交于一点
在欧氏几何空间,同一平面的两条平行线不能相交,这是我们都熟悉的一种场景。
然而,在透视空间里面,两条平行线可以相交,例如:火车轨道随着我们的视线越来越窄,最后两条平行线在无穷远处交于一点。

欧氏空间(或者笛卡尔空间)描述2D/3D几何非常适合,但是这种方法却不适合处理透视空间的问题(实际上,欧氏几何是透视几何的一个子集合),2维笛卡尔坐标可以表示为(x,y)。

如果一个点在无穷远处,这个点的坐标将会(∞,∞),在欧氏空间,这变得没有意义。平行线在透视空间的无穷远处交于一点,但是在欧氏空间却不能,数学家发现了一种方式来解决这个问题。

方法:齐次坐标
简而言之,齐次坐标就是用N+1维来代表N维坐标

我们可以在一个2D笛卡尔坐标末尾加上一个额外的变量w来形成2D齐次坐标,因此,一个点(X,Y)在齐次坐标里面变成了(x,y,w),并且有
X = x/w

Y = y/w

例如,笛卡尔坐标系下(1,2)的齐次坐标可以表示为(1,2,1),如果点(1,2)移动到无限远处,在笛卡尔坐标下它变为(∞,∞),然后它的齐次坐标表示为(1,2,0),因为(1/0, 2/0) = (∞,∞),我们可以不用”∞"来表示一个无穷远处的点了,哈哈。

为什么叫齐次坐标?

我们把齐次坐标转化为笛卡尔坐标的方法是前面n-1个坐标分量分别除以最后一个分量即可。

转化齐次坐标到笛卡尔坐标的过程中,我们有一个发现,例如:

你会发现(1, 2, 3), (2, 4, 6) 和(4, 8, 12)对应同一个Euclidean point (1/3, 2/3),任何标量的乘积,例如(1a, 2a, 3a) 对应 笛卡尔空间里面的(1/3, 2/3) 。因此,这些点是“齐次的”,因为他们代表了笛卡尔坐标系里面的同一个点。换句话说,齐次坐标有规模不变性。

证明:两条直线可以相交

考虑如下方程组:


我们知道在笛卡尔坐标系里面,该方程组无解,因为C ≠ D,如果C=D,两条直线就相同了。

让我们在透视空间里面,用齐次坐标x/w, y/w代替x ,y,

现在我们有一个解(x, y, 0),两条直线相交于(x, y, 0),这个点在无穷远处。

小结:齐次坐标在图形学中是一个非常基础的概念,例如3D场景映射到2D场景的过程中

参考: http://www.songho.ca/math/homogeneous/homogeneous.html


转自: 关于齐次坐标的理解(经典) https://blog.csdn.net/janestar/article/details/44244849

关于齐次坐标的理解(经典)相关推荐

  1. 齐次坐标的理解(2)

    接上篇文章齐次坐标的理解(1):https://blog.csdn.net/m0_37957160/article/details/119549709 "齐次坐标表示是计算机图形学的重要手段 ...

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

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

  3. 四天搞懂生成对抗网络(一)——通俗理解经典GAN

    点击左上方蓝字关注我们 [飞桨开发者说]吕坤,唐山广播电视台,算法工程师,喜欢研究GAN等深度学习技术在媒体.教育上的应用. 序言 做图像分类.检测任务时,为了提高模型精度,在数据处理方面,我尝试了很 ...

  4. 【飞桨PaddlePaddle】四天搞懂生成对抗网络(一)——通俗理解经典GAN

    ​​​​ 序言 做图像分类.检测任务时,为了提高模型精度,在数据处理方面,我尝试了很多数据增强tricks(包括了简单的裁切.变形.明暗.颜色调整,也包括了MixUp图像融合以及SMOTE这样的解决类 ...

  5. 计算机图形学的齐次坐标的理解

    1什么是其次坐标.转自百度百科 http://baike.baidu.com/view/2132318.htm 所谓齐次坐标就是将一个原本是n维的向量用一个n+1维向量来表示.实数.显然一个向量的齐次 ...

  6. 齐次坐标的理解(1)

    1.为什么要引入齐次坐标,齐次坐标的意义 首先百科解读: 齐次坐标就是将一个原本是n维的向量用一个n+1维向量来表示,是指一个用于投影几何里的坐标系统,如同用于欧氏几何里的笛卡儿坐标一般. 以下内容是 ...

  7. 关于齐次坐标的理解记录

    齐次坐标(homogeneous coordinates) 问题: 两条平行线会相交 铁轨在无限远处相交于一点 在欧几里得几何空间里,同一平面上的两条平行线永远都不会相交.但是在投影空间中,如上图中的 ...

  8. 【TensorFlow】TensorFlow从浅入深系列之六 -- 教你深入理解经典损失函数(交叉熵、均方误差)

    本文是<TensorFlow从浅入深>系列之第6篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维导 ...

  9. 视听场景理解经典任务

    文章目录 1. 视听场景理解简介 2. 主要任务 2.1 Audio-visual Event Localization (AVE) 2.2 Audio-visual Video Parsing (A ...

最新文章

  1. vue怎么vw布局好用_vue 实现 rem 布局的 或者 vw 布局的方法
  2. 【Redis】Redis分布式集群几点说道
  3. 【QA】pytorch中的worker如何工作的
  4. 小程序循环不同的组建_小程序之八,对象数组、循环及条件渲染
  5. 函数在内存中的具体执行
  6. DC保存至BMP图像
  7. OpenCV的数据类型——辅助对象
  8. MySQL读取配置文件的顺序、启动方式、启动原理
  9. PAT甲级 1017 Queueing at Bank
  10. P2P中的NAT穿越方案
  11. css字体库免费下载使用(带网址)
  12. 微信小程序获取用户头像和昵称能力调整!新的代替方案!
  13. 简要说明什么是cdn?
  14. 正则表达式内的常用的函数 2
  15. Android集成百度人脸识别(一)基础版SDK
  16. 计算机常用删除文件的5种方法,电脑清理C盘垃圾文件的几种方法
  17. LBM中的角点处理及部分代码(以D2Q9为例)
  18. git 重新追踪索引_索引追踪差距
  19. Flutter实战项目-第八篇 监听键盘弹起
  20. 今日金融词汇---新股限购,是什么?

热门文章

  1. MAC下解压(.xip)文件
  2. 人大金仓数据库的使用心得
  3. 【SpringBoot】之自定义 Filter 过滤器
  4. 编程随想(编程学什么语言好)
  5. 7-40 奥运排行榜
  6. 华为手机安卓手机莫名其妙的闹钟不知道哪里来的
  7. 自己交社保的人怎么样才知道自己可以退休了?
  8. 一步步分析为什么B+树适合作为索引的结构
  9. Poading Analysis
  10. vue 展开全文,收起全文