Multiple View Geometry in Computer vision 1.1节部分翻译
1.1简介—无处不在的投影几何
我们都熟悉射影变换。当我们看一幅图,我们看到的方形不是方形,或圆形不是圆形。平面立体映射到图片上的变换是一个投影变换的例子。
因此投影变换时保留的几何属性是什么呢?当然,不是形状,例如圆形可能呈现出椭圆形。长度也不是,一个圆的两个垂直半径通过投影变换被不同程度的被拉伸。角度、距离、距离比率——都不被保留,通过投影变换几乎保留了极少的几何特征。然而,投影变换保留了平直度(笔直straightness)属性。事实证明,这是映射最基本的要求,我们可以定义一个平面的投影变换正如任意点在平面上的映射都将保留直线。
为了明白我们为什么需要投影变换,我们从熟悉的欧式几何开始。欧式几何描述了目标物体的角度和形状,有时欧式几何在一些主要方面比较麻烦,我们需要创造出一个例外来推出一些基本几何概念——如交叉线。任意两条直线(在此我们认为是二维几何平面)几乎会相交于一点,但有一对直线不会相交,我们称之为平行线。通常人们说平行线将会相交于无穷远处。然而,这并不能令人完全信服,因为它与“无穷并不存在,这只是一个方便的假设”这一说法冲突。我们可以通过增加在无穷远处平行线相交的点(称之为“理想点ideal points”)优化欧式几何平面从而绕开这些冲突并解决无穷远的问题。
通过在无穷远处增加这些点,熟悉的欧式几何空间被转换为一种新类型的几何对象,投影空间。这是非常有用的思维方式,因为我们熟悉欧式几何空间的属性,例如相关的距离、角度、点、线和入射(incidence)概念。因此投影空间就没什么神秘的,它仅仅是欧式几何空间的扩展,表示两条直线总会相交于一点,尽管有时神秘点在无穷远处。
坐标:在欧式几何的二维空间中,一个点被表示为实数的有序对偶(x,y),我们增加了另外坐标扩展成新的三元组坐标(x,y,1),用该三元组坐标代表该点原来的坐标(x,y)。这样做是没关系的,因为我们可以通过这种坐标表示方法表示出另一种坐标表示方法,只需要添加或者删除最后一个坐标。现在我们需要重点说明为什么最后一个坐标必须标为1——毕竟,其余两个坐标并不是很受约束。如果坐标是(x,y,2)呢?在这里,我们做一个定义,认为(x,y,1) 与(2x,2y,2)代表同一个点,同时对于非零值k,(kx,ky,k)也代表同一个点。点可以用等价的坐标来表示,即两个等价三元组坐标相差公倍数,它们被称为点的齐次坐标。给定一个三元组坐标(kx,ky,k),可以通过除以k值得到原始的二维坐标(x,y)。
读者也许明白尽管(x,y,1)代表点(x,y),但是没有点对应三元组坐标(x,y,0)。如果我们尝试除以最后一个坐标0,将得到在无穷远的点(x/0,y/0)。这解释了点如何在无穷远处出现,齐次坐标的最后一个坐标为0表示无穷远点。
我们知道了如何将二维欧式几何空间扩展为用齐次向量表示投影空间,便可以很清楚的知道在任意维度都可以做相同的扩展。欧式空间IRn可以被扩展到通过齐次向量表示点的投影空间IPn。无穷远的点在二维投影空间中形成线,通常称为无穷远直线,在三维空间中形成无穷平面。
齐次性:在传统的欧式几何中所有的点是一样的,是没有区别的,整个空间是齐次的。当坐标被增加,表面上看是挑选了一个点作为原点。然而,意识到这仅仅是一种特别的坐标表示框架被选择是非常重要的。我们也可以找到不同的方法表示以不同点作为原点的平面坐标。实际上,我们也可以考虑通过坐标轴平移或旋转到不同位置从而在欧式几何空间中改变坐标。我们也可以认为这是空间本身变换和旋转到不同位置的另一种方式,由此产生的操作被称为欧氏变换。
一种更为普遍的变换是IRn空间的线性变换,之后通过欧氏几何变换移动空间原点起源。我们可能认为这是空间平移、旋转,最后在不同的方向以不同的比例进行线性拉伸。这种变换结果被称为仿射变换(affine transformation)。
原创,转发请注明https://home.cnblogs.com/u/nannan-yhx/
有问题的地方欢迎指正~在此分享给大家。
Multiple View Geometry in Computer vision 1.1节部分翻译的更多相关文章
- Multiple View Geometry in Computer Vision Second Edition by Richard Hartley 读书笔记(二)
// Chapter 2介绍的是2d下的投影变换,摘录下了以下定理 Result 2.1. The point x lies on the line l if and only if xTl = 0. ...
- Multiple View Geometry in Computer Vision Second Edition by Richard Hartley 读书笔记(一)
var bdots = "../" var sequence = [ 'l1', 'l2', 'l3', 'l4' ]; Chapter1是个总览,引出了射影几何的概念,通过在欧式 ...
- Computer Vision Algorithm Implementations
Participate in Reproducible Research General Image Processing OpenCV (C/C++ code, BSD lic) Image man ...
- Computer Vision Resources
Computer Vision Resources Softwares Topic Resources References Feature Extraction SIFT [1] [Demo pro ...
- Computer Vision Tutorials from Conferences (3) -- CVPR
CVPR 2013 (http://www.pamitc.org/cvpr13/tutorials.php) Foundations of Spatial SpectroscopyJames Cogg ...
- paper 156:专家主页汇总-计算机视觉-computer vision
持续更新ing~ all *.files come from the author:http://www.cnblogs.com/findumars/p/5009003.html 1 牛人Homepa ...
- Analyzing The Papers Behind Facebook's Computer Vision Approach
Analyzing The Papers Behind Facebook's Computer Vision Approach Introduction You know that company c ...
- Computer Vision Tutorials from Conferences (2) -- ECCV
ECCV 2012 (http://eccv2012.unifi.it/program/tutorials/) Vision Applications on Mobile using OpenCVGa ...
- Computer Vision Tutorials from Conferences (1) -- ICCV
ICCV 2013 (http://www.iccv2013.org/tutorials.php) Don't Relax: Why Non-Convex Algorithms are Often N ...
随机推荐
- python 02
函数的参数 默认参数: 函数的基本形参, 可以有默认参数, 什么是基本形参呢, 就是普通变量, 如字符串, 数字等. 并且带有默认参数的形参, 要放在后边. 传参时, 不必将所有的参数都传递, 可以只 ...
- mybatis-缓存1
以下转自:http://www.cnblogs.com/weidiao/p/5469046.html mybatis有两级缓存机制,一级缓存默认开启,可以在手动关闭:二级缓存默认关闭,可以手动开启.一 ...
- RStudio相关
1.设置默认目录,tool-Global Options,设定后要重启RStudio才能生效2.Ctrl+l清屏控制台3.↑健.回忆前一条命令,↓健相反4.Ctrl+↑,查找相应前缀的历史记录5.创建 ...
- Mac下python初学之Image库(PIL)
Mac下python 使用Image库 安装PIL,下载http://www.pythonware.com/products/pil/ 解压PIL源码包,阅读README知道需要使用python se ...
- 使用scanner工具类来获取用户输入的信息
使用scanner工具类来获取用户输入的成绩信息. 步骤:1.导入java.util.Scanner包 2.创建Scanner对象 3.接受并保存用户输入的值 例子:通过用户输入来获取学生成绩 pac ...
- 深入剖析tomcat 笔记——第8章 载入器
深入剖析tomcat 笔记 目录:
- Mongodb 副本集分片(二)---mongodb副本集部署脚本详解
分享下,最近做的一主一从一仲裁的示例,如有需要,大家可以扩展成一主两从一仲裁. 大家可以看到 我的集群名字沿用了默认的neunnm,如果是其他的话 大家注意修改. 需要辅助文件hosts.con ...
- [转载]ASP.NET中TextBox控件设立ReadOnly="true"后台取不到值
原文地址:http://www.cnblogs.com/yxyht/archive/2013/03/02/2939883.html ASP.NET中TextBox控件设置ReadOnly=" ...
- ORACLE 连接SQLSERVER 数据库备忘
最近工作需要,要从SQL SERVER数据库中同步提取数据. 这里采用了 Oracle Gateway 来连接,折腾了半天,终于搞定,记录下已备下次使用. 基本资料网上都可以搜很多,官网配置说明在这 ...
- Angular自定义指令directive:scope属性
在AngularJS中,除了内置指令如ng-click等,我们还可以自定义指令.自定义指令,是为了扩展DOM元素的功能.代码中,通过指定directive中的restrict属性,来决定这个指令是作为 ...