平面的投影变换(3)——利用无穷线进行仿射校正
来源:互联网 发布:aws s3 api php 编辑:程序博客网 时间:2024/05/01 19:11
1. 一维投影几何
在一维空间P1中,直线上的点x的齐次坐标为x = (x1, x2)T,当 x2 = 0 时为理想点。在这条直线上的点的投影变换为
x' =H2×2x
其中投影矩阵H2×2有3个自由度,可由3个匹配点对确定。1维投影具有对互比例(cross ratio)的不变性。定义4个点xi的互比例为:
,其中
关于互比例,有如下结论:
(1) 互比例不依赖于点 xi 的任何一种齐次表示。
(2) 对于有限点 xi ,若它的齐次表示中 x2 = 1,则 |xixj| 代表两点之间的有符号距离。
(3) 如果一点 xi 是理想点,则互比例的定义依然有效。
(4) 互比例对投影变换具有不变性,即,如果x' = H2×2x,则Cross(x1', x2', x3', x4') = Cross(x1, x2 ,x3, x4)。
并发线(Concurrent lines)是相交于一点的多条直线,是共线点的对偶。4条并发线 li 与直线 l 相交于4个点 xi ,这4条并发线的互比例就是4个点 xi 的互比例Cross(x1, x2 , x3, x4),它不变于直线 l 的位置。从投影的观点来看,这4个交点相当于4个共面点 x1, x2, x3, x4 在直线 l 上的中心投影,这个投影将空间P2上的点投影到空间P1。这4个投影点的互比例,也就是4条并发线的互比例,与直线 l 的位置无关,或者说不变于投影变换。
如果将上图中的投影中心c 看做摄像机中心,则直线 l 相当于成像直线(类似于成像平面),四个像点的互比例代表成像配置。成像直线的位置与4个像点的成像配置是无关的,对于任何成像直线,得到的都是相同的成像配置(互比例)。
学习并发线的投影几何,对于理解极线的投影几何非常重要。
2. 无穷线在仿射变换中的性质
定理(无穷线仿射定理):无穷线 l∞的投影变换 H 还是它本身,当且仅当 H 是仿射变换。
证明:
反之,设一个无穷点(x1,x2, 0)T,经过变换后仍被映射成为一个无穷点,则必有h31 =h32 = 0,这一定是仿射变换。
证毕。
无穷线 l∞ 上的一个点经仿射后一定仍然落在 l∞ 上,但却并不一定是该点本身,除非 A(x1, x2)T = k(x1, x2)T 。
3. 恢复仿射属性
如果要消除一幅透视图像中的投影畸变,需要指定平面中4个参考点的位置,以求得投影变换矩阵 H (8 dof)。然而,考虑到投影变换可分解为相似性变换HS (4 dof)、仿射变换HA (2 dof)和投影变换HP (2 dof)的级联,即H = HSHAHP,因此实际上不需要求得完整的投影变换矩阵 H,而只需计 HA 和 HP 就足够恢复对象的形状了。
从无穷线仿射定理可知,恢复 l∞ 就可以恢复仿射属性。一种简单的方法是:
(1) 先在投影图像中寻找一条无穷线的投影 l = (l1, l2, l3)T ,即灭线;
(2) 求出能将其变换到归一化无穷线 l∞= (0, 0, 1)T的投影矩阵H,即 l∞ = H-T l ;
(3) 然后用 H 对投影图像进行点变换;
(4) 在得到的校正图像上可以直接进行仿射属性的测量。
其中要求的投影矩阵 H 具有如下形式:
其中寻找灭线的方法是在投影图像中先求出灭点,然后两个灭点连成一条灭线。
求灭点的方法一:在投影图像中求两条平行线的投影直线的交点。
求灭线的方法二:在投影图像中利用三个共线点之间的长度比例求灭点。
4. 利用长度比例求灭点
设在世界坐标上有三个共线点x, y, z, 已知它们之间的长度比例为d(x,y):d(y,z) =a:b,则:
(1) 它们在投影图像中仍是三个共线点x', y', z',其长度比例为d(x',y'):d(y',z') =a':b'。
(2) 将点x, y, z表示为 1 维坐标的齐次形式,分别为(0, 1)T, (a, 1)T,(a+b, 1)T。
(3)将点x', y', z'表示为 1 维坐标的齐次形式,分别为(0, 1)T, (a', 1)T, (a'+b', 1)T。
(4) 求 1 维投影变换H2×2,使得
[(0, 1)T, (a', 1)T, (a'+b', 1)T] = H2×2 [(0, 1)T, (a, 1)T, (a+b, 1)T]
求解上式,首先将其改写为非齐次方程,然后可分别求得H2×2各项。
(5) 对理想点(1, 0)T进行 1 维投影变换得到 1 维坐标系下的灭点,等于H2×2(1, 0)T。
- 平面的投影变换(3)——利用无穷线进行仿射校正
- 平面的投影变换(4)——利用虚圆点进行相似性校正
- 平面的投影变换(1)——什么是投影变换?
- 三维空间的投影变换(2)——投影校正
- 平面的投影变换(2)——有几种几何变换?
- 三维空间的投影变换(1)——点,平面,直线,二次曲面
- 平面的投影变换(5)——极点,极线,固定点和固定线
- 如何利用Python语言进行——航偏校正
- 图像几何校正-- -- -- 投影变换
- 探讨:3D透视投影变换详解-兼谈视平面和屏幕的宽高比问题
- 探讨:3D透视投影变换详解-兼谈视平面和屏幕的宽高比问题
- 利用GDAL进行多项式几何校正校正新思路
- 利用matlab和opencv进行摄像头校正
- 利用OpenCV进行图像伽马校正
- 矩阵变换中等距、相似、仿射和投影变换的小结
- 遥感影像几何纠正-正射校正-利用在线谷歌地图直接对影像进行几何校正
- 基本图像变换:线性变换,仿射变换,投影变换
- 遥感的几何校正、正射校正、辐射校正
- Hadoop新手学习指导
- jmeter中不用time函数,用Random函数设置正确的时间格式
- Hello Mr.J——shiro+springmvc
- androidEdittext控件使用
- Ajax慕课网
- 平面的投影变换(3)——利用无穷线进行仿射校正
- php list
- 导出csv文件时,处理分隔符问题
- C++ Prime Plus 学习有感
- 阿里云App性能优化实践
- 设计模式----备忘录模式
- ajax跨域问题
- 读书笔记三
- 方法