1. 欧式几何、投影几何和投影变换

研究平面投影变换的任务是对一个平面在透视摄像机上成像时产生的几何畸变进行建模。

什么是投影变换?当我们看一张照片时,会发现物体的真实形状在相片中发生了变化,正方形不再是正方形了,圆形不再是圆形了。这就是投影变换造成的。

在一个平面的透视成像过程中,平面的某些几何属性被保留,某些则未保留。例如,一条直线成像后仍为直线(共线性),而原本平行的两条直线在成像后通常变为不平行了。那么,哪些几何属性会在投影变换中保留,那些不被保留呢?通常,平面的形状不会保留,例如正圆在投影后会变为椭圆,另外,角度、距离、距离比,等等,都不会保留。唯一能保留的几何属性似乎只有直线的共线性。

在欧式几何中,如果说在一个平面中任意两条直线必然相交于一点,是不能成立的,因为存在一个例外,即两条直线可以是平行的。这是欧式几何的麻烦之处。而换个说法,可以说平行的两条直线仍然相交于一点,只是它们相交于无限远处。这个在无限远处的交点,叫做理想点(ideal points)。由于增加了“理想点”,我们将传统的欧式空间拓展到了投影空间。在投影空间中,平面上任意两条直线的确是必然相交于一点的。

2. 投影空间和齐次(homogeneous)坐标

直线的齐次表示。平面R2中的一条直线用方程表示为ax+by+c=0,因此可以用向量(a,b,c)T来表示。注意向量(a,b,c)Tk(a,b,c)T表示同一条直线,或说是等价的。具有这种等价关系的一类向量叫做齐次向量。空间R3-(0,0,0)T中的一类等价向量构成投影空间P2,其中-(0,0,0)T表示该向量除外。注意,二维平面R2上的任一直线用三维向量表示,但该直线却是属于二维投影空间P2

点的齐次表示。对于直线l=(a,b,c)T上的一点(x, y)T,有ax+by+c=0,写成向量内积的形式为(x, y,1) (a,b,c)T= (x, y,1)l = 0。其中(x, y,1)T就是点(x, y)T的齐次向量表示形式。点的任意齐次向量表示为(x1x2, x3)T ,代表平面R2上的一点(x1/x3x2/x3 )T ,其中前者为该点的齐次坐标,后者为非齐次坐标。以齐次向量表示的点也是投影空间P2的元素。

定理1:点x落于直线l上,当且仅当xT= 0.

定理2:两条直线ll′ 相交于点x = × l。其中×表示向量的叉积。

定理3:经过两点xx连成一线l = × x'

3. 理想点和无穷线

平行直线的交点。两条平行直线的齐次表达式分别为= (a,b,c)T和l= (a,b,c')T,则由定理2,它们的交点为× l=(c' - c)(b, -a , 0)T,其最后一个坐标为0,对应于一个无限远处的点,叫做理想点。所有理想点的集合,(x1x2, 0)T ,位于一条直线上,叫做无穷线,记作 l∞ =(0,0, 1)T

经验证,理想点与无穷线的内积为(0, 0, 1)(x1x2, 0)T = 0。

由定理2,直线l = (a,b,c)Tl相交于理想点(b, -a , 0)T的平行线l= (a,b,c')Tl相交于同一个理想点(b, -a , 0)T。而二维非齐次坐标(b, -a )T代表直线的方向,这意味着,理想点的位置沿l随直线的方向而变。因此,无穷线可被认为是平面上直线方向的集合。

这是投影几何与欧式几何的区别。在投影空间P2中,可以无条件地说两线必交于一点,两点必连成一线。而在欧式空间R2中,平行线是个例外。

投影平面模型。二维投影空间P2可以看做三维实数空间R3上的一组射线组成的集合。可以验证,两个不等的射线共同决定一个平面,两个平面相交于一个射线。正如同两点决定一条直线,两条直线相交于一点。

定理4(对偶定理): 对于2维投影几何中的任何定理,交换点、线的位置,得到的对偶定理也成立。

例如定理2和4就是一对对偶定理,即两点通过一线<=> 两线通过一点

4. 二次曲线(conics)和对偶二次曲线(dual conics)

Conics是在平面中可用二次方程描述的一类曲线。在欧式几何中,conics包括三类(不包括非退行二次曲线):

- 双曲线(hyperbola)

- 椭圆(ellips)

- 抛物线(parabola)

而在2D投影几何中,这三类非退行二次曲线是等价的。

二次曲线在非齐次坐标中的方程为ax2 +bxy +cy2 + dx +ey +f = 0. 对它进行齐次化,即xx1/x3yx2/x3,则得到

ax12 + bx1x2cx22 + dx1 xex2 xf x3= 0

写为矩阵形式:

xTCx = 0

其中C为二次曲线系数矩阵,

如点和线的齐次表示形式一样,在C中重要的是元素之间的比例。因此C就是二次曲线的齐次表达式。二次曲线有5个自由度。

一个conic可由5个点完全决定。将一个conic表示为一个6元向量c=(a,b,c,d,e,f)T,则由5个点得到

可见conic系数c是一个5×6矩阵的零向量,说明一个二次曲线由5个点决定。

定理5(conics切线定理: 直线 l = Cx 正切C于点x.

证明:对于直线 l = Cx,因为lTxTCx = 0,故 通过点x.

若 C有另外一个交点y,则有yTCy = lTy = 0.

故对任一α,有 (x+αy)TC(x+αy) = 0.

这意味着,连接xy的直线 上的任意一点都落在二次曲线C上,除非C是退行的。

对偶二次曲线(dual conics)。上面定义二次曲线C可以叫做点二次曲线,因为它定义在关于点的方程上。利用投影空间P2上的对偶定理,可以将二次曲线定义成关于线的方程,叫做线二次曲线,或对偶二次曲线,记作C*C的切线 满足lTC*l = 0.

由conics切线定理,与C切于点x的切线为 l = Cx,若C满秩,则 C-1l,由xTCx = 0,得到(C-1l)TC(C-1l) =lTC-Tl = 0。考虑到C阵对称,故有lTC-1l = 0。因此在比例上有CC-1,可见C*C的伴随矩阵。

此外,如果C不满秩,则变为退化二次曲线(degenerate conics)。

5. 投影变换

Felix Klein在他的名著 "Erlangen Program" [Klein-39]中认为,几何学是对变换中不变属性的研究。按照这一观点,2D投影几何研究的是投影空间P2在投影变换中的不变属性。

定义(投影):投影是在空间P2上的可逆映射h,在这个映射中,三个点x1x2,  x3位于同一条直线,当且仅当h(x1),h(x2),h(x3)也位于同一条直线。

投影也叫共射变换(collineation),投影变换,或单应性变换(homography)。

定理(投影变换定理):对于一个投影 P2P,一定存在一个非奇异3×3矩阵H,使得对任何P2上的齐次点x,有h(x) = Hx.

证明:给定直线l 上的三个点x1x2,  x3,则对于 = 1,...,3,有lTxi = 0. 设H是一个非奇异3×3矩阵,则 lTH-1Hxi  = 0,故所有的点Hxi 一定落在直线H-1l 上,在变换中保持了共线属性。

这个定理说明在齐次坐标系上的任何可逆的线性变换都是一个投影。

定义(投影变换):平面投影变换是对齐次3元向量的线性变换,它由一个非奇异3×3矩阵表示。

或简记为x' =Hx。其中H称为齐次矩阵,因为对它乘上一个任意非零系数不会影响投影变换的结果。这个投影变换有8个自由度。

平面映射。沿着通过一个共同点(投影中心)的射线进行投影,则将一个平面映射为另一个平面。如果在每个平面中定义一个坐标系,则中心投影映射可以表示为x' = Hx。这种投影叫做透视,而不是一个全投影,它只有6个自由度。

从平面的透视图像中去除投影畸变。一个平面的中心投影成像是对原始平面进行投影变换生成的,而这种透视成像会造成形状畸变,通常在一个平面上的平行线成像后不再平行,而是相交于一个有限点。通过对成像进行反变换,可以去除投影畸变。方法是,首先通过点对点匹配计算投影变换,然后对得到的投影变换矩阵求逆。

设一对匹配点xx'的非齐次坐标分别为(x,y)和(x',y' ),则投影变换可写为如下非齐次形式:

每一对匹配点产生两个关于H的元素的方程式:

若有4对匹配点,就可以产生8个关于H的元素的线性方程组,从而H可解(带一个无关紧要的因子)。

6. 直线和二次曲线的变换

直线的变换。相对于点变换x' = Hx,直线的变换是l' = H-Tl。对于直线l 上的一点xi,变换后l'Txi' = lTH-1Hx= 0. 因此共线特性在变换中得以保留。注意,点变换针对H,线变换针对H-1,这是协变和逆变的区别。

二次曲线的变换。对于点变换x' = Hx,二次曲线方程写为xTCx x'T[H-1]TCH-1xx'TH-TCH-1x',因此conic变换为

C'= H-TCH-1.

二次曲线变换是协变的。对偶二次曲线的变换为C*'= HC*HT.

平面的投影变换(1)——什么是投影变换?相关推荐

  1. 计算机图形学14:三维图形的投影变换

    作者:非妃是公主 专栏:<计算机图形学> 博客地址:https://blog.csdn.net/myf_666 个性签:顺境不惰,逆境不馁,以心制境,万事可成.--曾国藩 文章目录 专栏推 ...

  2. 坐标系统与投影变换及在ARCGIS中的应用

    原文链接:http://blog.csdn.net/jax_lee/article/details/6764516 概述: 本文共可分为如下几个部分组成: 地球椭球体(Ellipsoid) 大地基准面 ...

  3. 透视投影变换-Perspective Transformation

    文章目录 1透视投影变换概述 2透视投影变换原理 3透视投影变换的实现 1透视投影变换概述 透视投影变换(Perspective Transformation)是对图像做视平面(Viewing Pla ...

  4. 如何将图片中的一个任意四边形区域的图像转化为矩形【附源码】

    将一幅图像中的任意四边形区域映射为矩形区域.比如,我们有时拍照片,因为角度的问题,本来是矩形的广告牌,在照片中可能表现为一个任意的四边形.事实上,在现实中本来是矩形的物体,在照片中往往呈现为任意四边形 ...

  5. MIT 18.06 +线性代数的几何意义+3Blue1Brown 笔记

    第一节 线性映射与线性变换 线性函数:初等f(x)=kxf ( x ) = k xf(x)=kx,满足可加性与比例行,几何意义为一条直线:高等线性函数:扩展初等线性函数,f(x1,x2,⋯,xn)=k ...

  6. 图像的几种变换简单介绍

    刚体变换 平移+旋转 保持欧式距离的变换,这意味着图像只进行2D平移和2D旋转运动.它只有3个自由度. 相似变换 平移+旋转+缩放 相比刚体变换增加了均匀的缩放.均匀的意思是各个方向的缩放比例相同.尺 ...

  7. dx12 龙书第二十章学习笔记 -- 阴影贴图

    对于龙书这本入门级别的书籍来说,我们仅关注于基本的阴影贴图算法.而像级联阴影贴图(cascading shadow map)[Engel06]这种效果更佳却也更为复杂的阴影技术,实则都是由这基本的阴影 ...

  8. 向量几何在游戏编程中的使用

    <1>简单的2-D追踪 -Twinsen编写 -本人水平有限,疏忽错误在所难免,还请各位数学高手.编程高手不吝赐教 -我的Email-address: popyy@netease.com ...

  9. 识别、提取三维超声中标准平面的总结+论文+代码+数据集+练习合集

    目录 数据特点 三维空间定位标准平面 基于监督学习方法 基于强化学习方法 wulalago/LearningNote: some resources on my path in deep learni ...

最新文章

  1. 全球第五大社交网站,二号员工离职创业,自爆心酸历程!想做10亿美元规模?先活着!...
  2. 如何使用敏捷工具Leangoo脑图做Epic/ Theme /Story 管理
  3. 《ASP.NET 开发从入门到精通》----2.3 编译和部署ASP.NET程序
  4. 迪士尼公布最新研究:AR对象可智能地与环境中的物体交互
  5. C# Marshal类基本概念和入门示例程序
  6. Spark 精品文章转载(目录)
  7. Learn Python the first day.
  8. rapidjson的read和write的sample
  9. 一条SQL语句的执行过程
  10. java反射之获取class对象,Java之反射机制(获取Class对象的三种方式)
  11. php调用7天内容,如何使用JS取得最近7天与最近3天日期
  12. 二叉树(Binary Tree)
  13. 关于浏览器及其内核以及什么是浏览器兼容性
  14. 量化研究数据来源汇总
  15. 善网ESG报告(第十期)
  16. 华为od统一考试B卷【连续出牌数量】C++ 实现
  17. HTB_Responder 综合靶机 菜菜被虐现场实录
  18. 二级菜单选中,一级菜单背景变换
  19. IQ 域名被删除事件 的前因后果
  20. SQL数据库经典题型(1)查询“001“课程比“002“课程成绩高的所有学生的学号

热门文章

  1. [Win10] [C# Desktop] 两种方法发送原生Toast通知
  2. 2016第1篇--Python查看微信被删好友
  3. 专访 | 腾讯公司副总裁王巨宏:培养新兴开源力量,为中国技术自主创新添砖加瓦...
  4. vm无法连接虚拟设备sata01_没法连接虚拟设备sata0:1怎样解决?
  5. 虚拟机里博图能连接上实物PLC,但是HMI仿真不能连接实物PLC
  6. python爬取美女_知乎大神用Python爬取高颜值美女(Python爬虫+人脸检测+颜值检测)...
  7. 创建一个简单的后台教务管理系统,包含动态增删改查学生,年级和课程信息及查看登录日志等功能,包含表单验证.
  8. 如何把多张图片合并成一个PDF?
  9. 百度坐标转WGS84
  10. 想要职场安全感?那就请你别停止成长