4x4齐次矩阵
齐次空间
在欧氏几何空间
,同一平面的两条平行线不能相交
;但是在透视空间
中,同一平面的两条平行线是可以相交的
。
欧氏几何空间可以看作是透视空间的一个子集,透视空间又可以称为齐次空间,用齐次坐标描述空间中的点。
用高维齐次空间
描述低维欧式空间
在空间直角坐标系中,任意一点可用一个三维坐标矩阵[x y z]表示。如果将该点用一个四维坐标的矩阵[Hx Hy Hz H]表示时,则称为齐次坐标表示方法。在齐次坐标中,最后一维坐标H称为比例因子。
INFO
为什么要引入齐次坐标系?
我们已经知道可以通过矩阵乘法,将多个转换矩阵相乘来得到变换后的向量,但是只有平移是无法通过矩阵乘法计算的,在欧式空间中,它只能通过加减法计算
例如将向量v
沿+x
方向平移∆x
,沿+y
方向平移∆y
,沿+z
方向平移∆z
,那么平移后的坐标为(x+∆x, y+∆y, z+∆z)
假设转换矩阵为M,我们依旧想通过矩阵乘法计算出转换矩阵M
很明显是无法计算出M的,但是如果我们在增加一个维度分量w,则欧式3D空间中的点在齐次空间中表示为
转换为齐次空间,有
同时除以w,将齐次空间中的坐标换算为欧式3D空间中则有
因此为了方便起见,一般将w赋值为1
这样就把各种变换都统一了起来,都表示成一连串的矩阵相乘的形式,保证了形式上的一致。
2D、3D齐次空间
2D空间中的坐标描述为
3D齐次空间中的坐标则描述为
想象一个三维空间中z=w的平面,二维空间中的点是齐次空间中点在z=w平面上的投影
任意给定一个2D空间的点(x,y),齐次空间中有无数个点与之对应,所有点的形式都是
当k=0时,将这个点解释为“无限远处的点”,对应欧式空间中的无穷大
3D、4D齐次空间
思想与2D中相同,将3D中的点理解为在4D齐次空间“平面”
上的投影
3D空间中的坐标描述为
4D齐次空间中的坐标则描述为
相应的当k=0时,将这个点解释为“无限远处的点”
4x4平移矩阵
3x3矩阵
是不包含平移
的,而且任意矩阵乘法的变换都不包含平移,而通过引入4x4平移矩阵
可以解决该问题。
将3x3转换矩阵扩展为4x4平移矩阵
而且对于任意向量,矩阵乘法在欧式空间和齐次空间中的结果是相同的,只不过齐次空间多一个分量
暂时假设w=1,则有
假如在最后一个行向量中引入偏移量,那么可以得到4x4平移矩阵
例如:一个向量通过旋转、平移得到新向量,旋转矩阵为R
,平移矩阵为T
则有
为了更加明显的区分出旋转部分和平移部分信息,令
则最终转换矩阵可以简化为
一般仿射变换
在前文中我们探索了通过原点的任意轴、不包含平移的转换矩阵,在知道如何通过平移矩阵进行平移转换的前提下,我们探索三维空间下更一般的情况
- 绕不通过原点的任意轴旋转
- 沿不通过原点的任意轴缩放
- 向不通过原点的任意面正交投影
- 沿不通过原点的任意面镜像
其基本思想是将向量v先通过平移矩阵转换到原点处,再进行转换,最后在平移到原位置。其中平移矩阵为T,转换矩阵为R,平移逆矩阵为T-1
最终的转换矩阵为
最终影响的只有最后一行,并没有影响线性变换矩阵。
透视投影
将物体投影到平面上,如果平面上的点与物体上的点连线之间是平行的则称为正交投影(又称为平行投影),如果相聚一点,则成为透视投影。
相交的那个点称为投影中心,投影平面在投影中心前面,因此会呈现出物体相对于投影中心
越远则投影越小,越近则投影越大,简称为“近大远小”
,这符合人类的视觉效果
INFO
透视投影是人类视觉系统的模型。
使用4x4矩阵进行透视投影
点p
在z=d平面上进行透视投影,原点为投影中心
,有
转换到四维齐次空间中,假设w=1,坐标表示为
考虑存在矩阵M
将[px py pz 1]转换为上述表达式
则在z=d平面上的投影矩阵为:
- 乘以这个矩阵实际并没有进行转换,它的作用只是用来计算出合适的分母
- 存在多种变化,矩阵不固定
小孔成像
在盒子上开一个孔,光线通过孔在盒子内部产生投影。将小孔处作为投影中心建立坐标系(左手坐标系)
从侧面看点p,投影面为z=-d,投影中心为原点,最终投影后的点为p'
根据相似三角形可知
则点p在投影面为z=-d上的投影为
相应的在z=d平面上的投影为
这样可以降低计算的复杂度,但是这种小孔成像在真实世界是不存在的
INFO
小孔成像是摄像机的模型。
参考:
【1】关于齐次坐标的理解