射影变换的初步了解
2D射影几何研究的是关于射影平面IP2在所谓射影映射的变换群下保持不变的性质。
定义1 射影映射是把IP2到自身的一种满足下列条件的可逆映射h:三点x1,x2,x3共线当且仅当h(x1),h(x2),h(x3)也共线。
射影映射组成一个群,因为其逆和复合运算符合群性质。又称为保线变换,射影变换或单应(homography)。下面给出其等价代数定义。
定理1 映射h:IP2→IP3是射影映射的充要条件是:存在一个3×3非奇异矩阵H,使得IP2的任何一个用矢量x表示的点都满足h(x)=Hx。
定理表明射影映射都是以这样一次齐次坐标的线性变换出现,反之这样的映射是射影映射。
使用x表示IP2中的点,而用Hx表示齐次坐标的线性映射。我们证明下面的命题成立,用来不全面证明定理1。
齐次坐标的任何可逆线性变换是射影映射
证明
令x1,x2和x3都在同一条直线 l 上。因此
lTxi=0,i=1,⋯,3
令H是非奇异3×3的矩阵,又上面式子可以得到
lTH−1Hxi=0→(H−Tl)T(Hxi)=0
因此点Hxi都在直线H−Tl上。因而该变换保持共线性。
逆命题
每个射影映射都以这种方式出现。
给出另一个射影变换(保线变换)的定义。
定义2 射影变换。平面射影变换是关于齐次三维矢量的一种线性变换,并可用一个非奇异3×3矩阵H表示为:
⎝⎛x1′x2′x3′⎠⎞=⎣⎡h11h21h31h12h22h32h13h23h33⎦⎤⎝⎛x1x2x3⎠⎞(1)
或更简洁表示为x′=Hx。
注意,可以通过乘以任意非零比例因子来改变在该等式中出现的矩阵H而不改变射影变换。 因此,我们说H是一个齐次矩阵,因为在点的齐次表示中,只有矩阵元素的比例是有意义的。 在H的九个元素中有八个独立的比率,因此射影变换具有八个*度(减掉一个比例因子)。
射影变换将每个图形投影为射影等价的图形中,使其所有射影属性保持不变。 在前一篇博文中我们描述的射线模型中,射影变换仅仅是IR3的线性变换。
平面间的映射
图1给出了定理1的一个例子。
图1。 中心投影将一个平面上的点映射到另一个平面上的点。 过投影中心作一张与两平面π和π′相交的平面,可以看到中心投影也将线映射到线。 由于线被映射到线,因此中心投影是射影的,并且可以通过齐次坐标的线性映射x′=Hx来表示。
沿着通过公共点(投影中心)的射线的投影定义了从一个平面到另一个平面的映射。 很明显,这种点到点的映射保留了直线不变,其中一个平面中的线被映射到另一个平面中的线。
如果在每个平面中定义坐标系并且以齐次坐标表示点,则中心投影映射可以用x′=Hx表示,其中H是非奇异3×3矩阵。 实际上,如果在两个平面中定义的两个坐标系都是欧氏(直角)坐标系,那么由中心投影定义的映射比一般射影变换更受限制。 它被称为透视映射而不是完全的射影映射,并且可以用具有六个*度的变换来表示。
消除平面透视图像的射影失真
在透视成像下形状会失真(变形)。 例如,在图2中,窗口在图像中不是矩形,尽管原有窗子是。 通常,场景平面上的平行线在图像中不平行,而是收敛到有限点。 我们已经看到平面(或平面的一部分)的中心投影图像通过投影变换与原始平面相关,因此图像是原始的射影失真。 通过计算逆变换并将其应用于图像,可以“撤销”该投影变换。 结果将是一个新的合成图像,其中平面中的物体以其正确的几何形状显示。 这将在图2 a的建筑物的前墙解释。 注意,由于地面和大楼的前墙不在同一平面上,因此必须用于矫正前墙的投影变换与用于地面的投影变换不同。
图2.消除透视失真。 (a)具有透视失真的原始图像 - 窗口的线明显地收敛于有限点(延长后相交)。(b)合成得到的前墙的正视图。 墙的图像(a)通过射影变换与墙的真实几何形状相关联。 通过将四个成像窗口角点映射到适当大小的矩形顶点来计算逆变换。 由四点对应确定变换。 然后将变换应用于整个图像。 注意,地面图像的部分受到进一步的射影失真。 这也可以通过射影变换来消除。
首先,选择平面与图像想对应的部分。然后选择图像平面的2D局部坐标和景物的世界坐标,如图1所示。
设世界与图像平面上一对匹配点x和x′。 我们在这里使用点的非齐次坐标而不是齐次坐标,因为这些非齐次坐标可以直接从图像和世界平面得到。式(1)的射影变换可以用非齐次形式写成
x′=x3′x1′=h31x+h32y+h33h11x+h12y+h13,y′=x3′x2′=h31x+h32y+h33h21x+h22y+h23
每个点对应关系为H元素的两个方程,将其乘出简化后是
x′(h31x+h32y+h33)=h11x+h12y+h13
y′(h31x+h32y+h33)=h21x+h22y+h23
这些方程在H的元素中是线性的。四点对应在H的元素中导致八个这样的线性方程,这足以求出H,只差不重要的乘法因子。 唯一的限制是四个点必须处于“一般位置”,这意味着没有三个点是共线的。 然后将以这种方式计算的变换H的逆应用于整个图像,以消除透视失真对所选平面的影响。 结果如图2 b所示。
说明:首先,以这种方式计算矫正变换H不需要知道任何相机的参数或平面的位姿; 第二,并不总是需要知道四点的坐标以消除投影失真。
射影变换是代表比世界平面的透视成像更多情况的重要映射。 许多其他例子如图3所示。
图3.在透视图像中射影变换x′=Hx的例子。 (a)由世界平面引起的两个图像之间的射影变换(两个射影变换的复合是射影变换); (b)具有相同摄像机中心的两个图像之间的射影变换(例如,摄像机围绕其中心旋转或变焦其焦距); (c)平面图像(建筑物的后墙)与其阴影图像到另一个平面(地平面)之间的射影变换。
直线与二次曲线的变换
直线的变换
在定理1的证明中指出,如果点xi位于线 l 上,那么变换点x′=Hx在射影变换下位于线l′=H−Tl。 通过这种方式保持了点在线上的性质,因为l′Txi′=lTH−1Hxi。这给出了线的变换规则:在点变换x′=Hx下,直线 l 变换为
l′=H−Tl
或者可以写l′T=lTH−1。
注意线和点变换的根本区别。 点根据H变换,而线(作为行向量)根据H−1变换。 这可以用“协变”或“逆变”行为来解释。 有人说,点变换是逆变,线变换是协变。
二次曲线的变换
我们知道在前面博文讲述二次曲线和对偶二次曲线时,说过点在二次曲线上的方程为xTCx=0,那么射影变换中,即在点变换x′=Hx下,该式变为:
xTCx=x′T[H−1]TCH−1x′=x′TH−TCH−1x′
这是二次形式x′TC′x′,其中C′=H−TCH−1。 这给出了二次曲线的变换规则:
结论1 在点变换x′=Hx下,二次曲线C变换为C′=H−TCH−1
H−1在方程中,所以二次曲线变换称为协变。
结论2 在点变换x′=Hx下,对偶二次曲线C∗变换为C′∗=HC∗HT
我们知道在前面博文讲述二次曲线和对偶二次曲线时,说过对偶二次曲线的方程为lTC∗l=0。
在点变换x′=Hx下,我们得到l′=H−Tl,可以得到:
l=HTl′
所以我们可以得到
lTC∗l=(HTl)TC∗HTl′=l′THC∗HTl′=l′TC′∗l′
所以C′∗=HC∗HT
博文内容总结和概览
知识
概念 |
定义 |
射影映射(保线变换,射影变换或单应(homography)) |
射影映射是把IP2到自身的一种满足下列条件的可逆映射h:三点x1,x2,x3共线当且仅当h(x1),h(x2),h(x3)也共线。 |
射影变换另一定义 |
平面射影变换是关于齐次三维矢量的一种线性变换,并可用一个非奇异3×3矩阵H表示为x′=Hx
|
平面间映射 |
点对点映射且保持直线不变。若是两平面建立都是欧氏直角坐标系,则为透视映射。 |
消除透视失真 |
简单使用四个对应点关系求解出H,然后将逆变换应用到失真图像中以消除射影失真。 |
直线的变换 |
如果点xi位于线 l 上,那么变换点x′=Hx在射影变换下位于线l′=H−Tl或l′T=lTH−1。 |
二次曲线变换 |
在点变换x′=Hx下,二次曲线C变换为C′=H−TCH−1
|
对偶二次曲线变换 |
在点变换x′=Hx下,对偶二次曲线C∗变换为C′∗=HC∗HT
|
定理
概念 |
内容 |
射影映射等价代数定义 |
映射h:IP2→IP3是射影映射的充要条件是:存在一个3×3非奇异矩阵H,使得IP2的任何一个用矢量x表示的点都满足h(x)=Hx
|