Multiple View Geometry in Computer Vision Second Edition by Richard Hartley 读书笔记(一)
var bdots = "../"
var sequence = [
'l1', 'l2', 'l3', 'l4'
];
Chapter1是个总览,引出了射影几何的概念,通过在欧式空间中,添加一条位于无穷远处的线,所有平行线相交于此线上来构成射影空间。之前只接触过初等几何的知识,于是我学习了一下解析几何的知识,书籍是丘维声的《解析几何》,以此作为入门教材,还是很不错的,书中引述了Erlangen Program,即每种几何都是研究图形在一定的变换群下不变的性质。本书中在Chapter2中也提到了这一观点,并随后介绍了一些变换群及不变量。
也提出了Homogeneity的概念,即用(x,y,w)表示一类点,w为缩放系数,几何意义就变成了某一条线上的所有点,书中也提到了点和线是等价的,从刚才也可以看出,一类位于一条线上的点也就代表了一条线。上学期的图形学课也涉及到了这个概念,是从平移变换的矩阵形式阐述的:如果用2*2矩阵点乘(x,y)不好表示平移变换,于是扩展成了3*3矩阵点乘(x,y,w)。
欧式几何,仿射几何,投影几何。之前说了,投影几何是添加infinite points,不过并不与其他线区分,每条线都可以是line at infinity,于是没有平行的性质。仿射几何特化了line at infinity,两条平行线相交于无穷远处一点,具有平行的性质。欧式几何则是by singling out first a line at infinity and subsequently, two points called circular points lying on this line then affine geometry becomes Euclidean geometry 。二维中这两个点是(1,+-i,0),想象一下,欧式空间中两个椭圆顶多相交点有两个,但是在仿射空间中有四个(两个在无穷远处),用homogeneous coordinates (x, y, w) 写出的椭圆方程
\begin{equation}
(x-aw)^2 +(y-bw)^2 =r^2w^2.
\tag{1}
\end{equation}
可以发现,每个椭圆都经过(1,±i,0)T 并且他们是在无穷远处的,they are called the circular points of the plane 。比如仿射几何中不区分椭圆与圆,他们之间可以经由仿射变换得到,但是欧式几何中则有形状作为不变量,书中说In particular, concepts such as angle and length ratios may be defined in terms of the circular points. 目前还不太不太理解。不过仿照仿射几何中线的朝向是由线与无穷远处交点定义的,它的意思应该也差不多。
If the camera centre moves, then the images are in general not related by a projective transformation, unless all the space points are coplanar. 如果点共面,那么不同的camera centre就可以用一个投影变换关联原平面与之后的成像平面。经由IAC可以校准camera,IAC的概念还没看,待解决。之后大体介绍了如何由2 views, 3 views, n views 进行3d还原,但是由于可以在成像的投影变换中添加任意的投影变换,即
\begin{equation}
P_jX_i=(P_jH^{-1})(HX_i)
\tag{2}
\end{equation}
,“the reconstruction has a projective ambiguity ”这些还原可能出现如下的误差
具体如何重建见后续。
Multiple View Geometry in Computer Vision Second Edition by Richard Hartley 读书笔记(一)的更多相关文章
- 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 1.1节部分翻译
1.1简介—无处不在的投影几何 我们都熟悉射影变换.当我们看一幅图,我们看到的方形不是方形,或圆形不是圆形.平面立体映射到图片上的变换是一个投影变换的例子. 因此投影变换时保留的几何属性是什么呢?当然 ...
- 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 ...
- Learning ROS for Robotics Programming Second Edition学习笔记(五) indigo computer vision
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...
- 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 ...
随机推荐
- window.open(url, "_black" , spec)
var url = "${request.contextPath}/test/openWindow.action?number="+number; var spec = " ...
- java.util.concurrent包API学习笔记
newFixedThreadPool 创建一个固定大小的线程池. shutdown():用于关闭启动线程,如果不调用该语句,jvm不会关闭. awaitTermination():用于等待子线程结束, ...
- http怎样保持有状态?
HTTP协议的特点 HTTP协议是无状态的协议,发送的请求不记录用户的状态,不记录用户的信息.就相当于它被访问了2次,不知道是哪两人访问的,或者是一个人访问两次. 正是因为HTTP协议的这一特点,用户 ...
- 如何配置JAVA的环境变量、Tomcat环境变量
配置JAVA环境变量 1.右击[我的电脑]---[属性]-----[高级]---[环境变量],如图: 2.选择[新建系统变量]--弹出“新建系统变量”对话框,在“变量名”文本框输入“JAVA_HOME ...
- ios开发--27个提升效率的iOS开源库推荐
超长慎入列表: DZNEmptyDataSet(UI,空表格视图解算器) PDTSimpleCalendar(UI,drop-in日历组件) MagicalRecord(实施活跃记录模式的Core D ...
- Android getActionBar()报空指针异常
1. 加载完视图后,再去获取: 写在setContentView()后面. 2.sdk版本: Actionbar的主题在3.0以后才有,使用的时候要确保,最低的版本不能小于3.0. <uses- ...
- Android Service实时向Activity传递数据
演示一个案例,需求如下:在Service组件中创建一个线程,该线程用来生产数值,每隔1秒数值自动加1,然后把更新后的数值在界面上实时显示. 步骤如下:1.新建一个android项目工程,取名为demo ...
- Django admin site(二)ModelAdmin methods
ModelAdmin methods save_model(request, obj, form, change) 此方法为admin界面用户保存model实例时的行为.request为HttpReq ...
- 注意:C++中double的表示是有误差的
注意:C++中double的表示是有误差的,直接通过下面的例子看一下 #include<iostream> using namespace std; int main() { double ...
- UVa 11584 Partitioning by Palindromes【DP】
题意:给出一个字符串,问最少能够划分成多少个回文串 dp[i]表示以第i个字母结束最少能够划分成的回文串的个数 dp[i]=min(dp[i],dp[j]+1)(如果从第j个字母到第i个字母是回文串) ...