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 ”这些还原可能出现如下的误差

具体如何重建见后续。

posted on 2015-04-22 20:53 Billily 阅读(...) 评论(...) 编辑 收藏

Multiple View Geometry in Computer Vision Second Edition by Richard Hartley 读书笔记(一)的更多相关文章

  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. ...

  2. Multiple View Geometry in Computer vision 1.1节部分翻译

    1.1简介—无处不在的投影几何 我们都熟悉射影变换.当我们看一幅图,我们看到的方形不是方形,或圆形不是圆形.平面立体映射到图片上的变换是一个投影变换的例子. 因此投影变换时保留的几何属性是什么呢?当然 ...

  3. Computer Vision Algorithm Implementations

    Participate in Reproducible Research General Image Processing OpenCV (C/C++ code, BSD lic) Image man ...

  4. Computer Vision Resources

    Computer Vision Resources Softwares Topic Resources References Feature Extraction SIFT [1] [Demo pro ...

  5. Computer Vision Tutorials from Conferences (3) -- CVPR

    CVPR 2013 (http://www.pamitc.org/cvpr13/tutorials.php) Foundations of Spatial SpectroscopyJames Cogg ...

  6. paper 156:专家主页汇总-计算机视觉-computer vision

    持续更新ing~ all *.files come from the author:http://www.cnblogs.com/findumars/p/5009003.html 1 牛人Homepa ...

  7. Learning ROS for Robotics Programming Second Edition学习笔记(五) indigo computer vision

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  8. Analyzing The Papers Behind Facebook's Computer Vision Approach

    Analyzing The Papers Behind Facebook's Computer Vision Approach Introduction You know that company c ...

  9. Computer Vision Tutorials from Conferences (2) -- ECCV

    ECCV 2012 (http://eccv2012.unifi.it/program/tutorials/) Vision Applications on Mobile using OpenCVGa ...

随机推荐

  1. ssh 公钥

    以前做ssh key登录方式时都是用的root帐号,基本都是无往不利的,权限采用默认即可.今天实验中两台机器帐号都是nianzong,一个普通的帐号.按照如下步骤: A机器:ssh-keygen -t ...

  2. Android 异步加载

    Android 4.0 后 貌似规定了 在主线程中不允许访问网络,在子线程中不允许修改UI. 否则会抛出NetworkOnMainThreadException 异常 解决办法: 采用继承 Async ...

  3. lintcode :数组剔除元素后的乘积

    题目: 数组剔除元素后的乘积 给定一个整数数组A. 定义B[i] = A[0] * ... * A[i-1] * A[i+1] * ... * A[n-1], 计算B的时候请不要使用除法. 样例 给出 ...

  4. sizeof 和strlen的区别

    1. 编译时计算运算符sizeof,可用类型或变量做参数,计算占用内存的大小.sizeof后若是类型必须加括弧,若是变量名可不加括弧.sizeof(x)可用来定义数组维数.如:printf(" ...

  5. java:构造函数

    class Dog { Dog(){ } } 构造函数没有返回值定义,构造函数名必须和类名相同,如果类里面没有构造函数,编译器会帮你加一个构造函数. 使用this调用构造函数 class Dog { ...

  6. AO总结10:MapControl控件

    MapControl对应ArcMap中的数据视图,它封装了Map对象,并提供了额外的属性.方法.事件用于: 1 管理控件的外观.显示属性和地图属性 2 添加并管理控件中的数据层 3 装载Map文档控件 ...

  7. JDBC学习总结(二)

    1.JDBC的基本应用 1)创建数据库: create database test;   use test; 2)创建表: create table student(     id int(4) no ...

  8. mysql: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x90</...'

    插入数据出现问题,因为包含了特殊字符. 现象: 插入的数据中如果含有某些特殊字符,会导致插入数据失败,例如字符串”测试**插入数据...“,在console中insert是正常的,但是使用java代码 ...

  9. 三个特殊资源目录 /res/xml /res/raw 和 /assets

    在android开发中,我们离不开资源文件的使用,从drawable到string,再到layout,这些资源都为我们的开发提供了极大的便利,不过我们平时大部分时间接触的资源目录一般都是下面这三个. ...

  10. cdev_init函数

    linux-2.6.22/include/linux/cdev.hstruct cdev {   struct kobject kobj;          // 每个 cdev 都是一个 kobje ...