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 ...
随机推荐
- json.stringfy()和json.parse()
json.stringfy()将对象.数组转换成字符串:json.parse()将字符串转成json对象. json.stringfy(): 语法: JSON.stringify(value [, ...
- PHPStorm技巧篇 -- 观感优化
(1)设置默认显示行号 (2)设置自动换行 (3)去除代码下划线(拼写检测) 优化说明:自动换行和显示行号字面意思很好理解,下划线说明一下,phpstorm默认对代码进行拼写校验,即对于不符合英文单词 ...
- KEGG数据库
参考:KEGG数据库中文教程 - 博奥 &[学习笔记]KEGG数据库 - 微信 学习一个技能最主要的事情你必须知道,那就是能通过它来做什么? KEGG数据库里面有什么? 如何查询某一特定的代 ...
- SPSS数据分析—二分类Logistic回归模型
对于分类变量,我们知道通常使用卡方检验,但卡方检验仅能分析因素的作用,无法继续分析其作用大小和方向,并且当因素水平过多时,单元格被划分的越来越细,频数有可能为0,导致结果不准确,最重要的是卡方检验不能 ...
- 个人学习随笔(psi-blast随笔)
psi-blast学习 最近自己学习了一些新工具,最近在学习关于蛋白质相互作用位点的预测,在学习中,接触了几个新的工具,下面说说自己正在学习的psi-blast. 首先要说我用psi-blast用来做 ...
- 初探Backbone
Backbone简介 中文API:http://www.csser.com/tools/backbone/backbone.js.html 英文API:http://backbonejs.org/ B ...
- 新春测 kinect motor
大年30,祝所有开发伙伴新春快乐. 天天FQ, 叹国内学习成本太高 看到一篇台湾 kinect 电机控制, 赞 using Microsoft.Kinect; using System; using ...
- 模板列onclick事件中绑定跳转页参数(onclick location.href Eval)
<asp:GridView runat="server" ID="gvCheckList" AutoGenerateColumns="false ...
- html快速入门(基础教程+资源推荐)
1.html究竟是什么? 从字面上理解,html是超文本标记语言hyper text mark-up language的首字母缩写,指的是一种通用web页面描述语言,是用来描述我们打开浏览器就能看到的 ...
- 使用Autolayout对多行文本Label进行布局,高度不准确的解决办法!
BUG描述: 今天公司的项目中发现了一个BUG,大概给大家描述一下,tabbleView有一个tableFooterView,这个footView中有一个Label,是多行显示文本,程序用的是Auto ...