zoukankan
html css js c++ java
齐次坐标
齐次坐标
(homogeneous coordinates)是我所熟悉的计算机视觉和图形学这两个领域中经常要用到的概念,同时,坐标也是一般人都可以理解的东西。
二维空间中的一个点是用二元组
表示的。我们可以增加一个额外的坐标得到三元组
,同时我们声明这是同一个点。这看起来完全无害,因为我们可以很简单地通过增加或者删除最后一个坐标值来在两种表示方式之间来回切换。现在,有一个很重要的问题是:最后一个坐标
齐次坐标
的定义,即给定一个二维点
,那么形如
的所有三元组就都是等价的,它们就是这个点的
齐次坐标
,我们只要把它除以三元组中的第三个数,即可得到原始的二维点坐标(这就是@祝文祥的答案中所说的同比收缩的一个例子)。不过我觉得,从字面上来看,
叫
法还是不那么形象,不过看看和齐次对应的英文单词homogeneous,我们会发现这个词有时还会被翻译成“同质”,表示某一类东西拥有一些相同的性质,这么来看的话,还是挺形象的吧。
需要再次注意的是这里的k是非零的,那么如果
会怎样?因为除数不能为
的缘故,所以似乎没有任何二维点是和
对应的。事实上,
就是无穷远处的点。以前,我们用
是无法描述二维平面上的无穷远点,但当我们引入
齐次坐标
的一个好处。当然了,使用
齐次坐标
的内容翻译并修改自《Multiview Geometry in Computer Vision (2nd Edition)》第2页第9行开始的两段。
2. 线性
再来说说“线性”。和“齐次”类似,带“线性”的概念也很多,下面我也会给出一个具体的线性的东西来解释,以防过于抽象。
“线性变换”(Linear Transformation)同样是计算机视觉和图形学中经常用到的东西。通常,我们会用一个矩阵来表示一个线性变换,对于二维空间中的线性变换,我们经常用3x3的矩阵来表示。当给定一个线性变换矩阵之后,我们把它和一个
齐次坐标
了。
那么
叫
线性变换而不是弯性变换呢?这里抛开线性的数学定义不说,线性变换有一个重要的性质,非常形象地表达了这一概念,即保共线性(我记不清是不是
叫
这个名字了,望指正)。具体地说就是,在线性变换之前处于同一条直线上的3个点,经过线性变换之后必定还处于同一条直线上。换句话说,如果你画了一条直线,这条直线在经过线性变换之后它必定还是一条直线。
所以说,线性变换最喜欢直线了,除了直线以外的东西,比如角,在经过线性变换之后可能就完全不一样了,此外,还有长度、面积、平行等等,线性变换都不喜欢,不保证它们在变换之后还能维持原样。
以上,希望能帮助大家理解这两个概念。
查看全文
相关阅读:
一起学习Avalonia(九)
一起学习Avalonia(八)
一起学习Avalonia(七)
【JAVA习题二十八】海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
【JAVA习题二十七】有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下
【JAVA习题二十六】输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
【JAVA习题二十五】打印出杨辉三角形
【JAVA习题二十四】有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
【JAVA习题二十三】求一个3*3矩阵对角线元素之和
【JAVA习题二十二】求100之内的素数
原文地址:https://www.cnblogs.com/hjlweilong/p/7727226.html
最新文章
case when like
游标数据循环执行存储过程
迂回实现like in
从删库到跑路
Oracle的列操作(增加列,修改列,删除列),包括操作多列
oracle 处理字段值‘1,2,3’对应的实际值的处理方法
orale无效数字校验
19-08-19
Java8 按照类属性去重
编程题
热门文章
编程题 -- 逻辑计算器 未完
编程题 -- 分组问题,输出公式(一)
世界最难的逻辑推理题之一 —— 真话精灵假话精灵和随机精灵
.NET 跨平台框架Avalonia UI: 填坑指北(二):在Linux上跑起来了
.NET 跨平台框架Avalonia UI: 填坑指北(一):熟悉UI操作
一起学习Avalonia(十四)
一起学习Avalonia(十三)
一起学习Avalonia(十二)
一起学习Avalonia(十一)
一起学习Avalonia(十)
Copyright © 2011-2022 走看看