2D变换
等距变换
- 旋转平移
- 保留形状、面积
- 通常描述刚性物体运动
相似变换
- 在等距变换的基础增加缩放特点
射影变换
- 共线性、四共线点的交比保持不变
仿射变换
- 面积比值、平行关系等不变
- 仿射变换是特殊的射影变换
影消点与影消线
2D无穷远点
- 两直线的交点可由两直线的叉乘得到,表达为 ( x 1 , x 2 , z ) (x_1, x_2, z) (x1,x2,z)。若 z = 0 z=0 z=0,则该点为无穷远点(欧式坐标表示为 ( x 1 z , x 2 z ) (\frac{x_1}{z},\frac{x_2}{z}) (zx1,zx2))。
- 无穷远点经过射影变换后为有限远点。
- 无穷远点经过仿射变换后仍为无穷远点。
2D无穷远线
- 无穷远点集位于一条线上,该线成为无穷远线(可表示为 l i n f = [ 0 0 1 ] l_{inf}=[0 \space 0 \space 1] linf=[0 0 1])。
- 无穷远点经过射影变换后为有限远点。
- 无穷远点经过仿射变换后仍为无穷远点。
线的变换
已知 l x = 0 lx=0 lx=0,求解 l ′ H x = 0 l'Hx=0 l′Hx=0.
推导过程为:
已知方程: l T x = 0 添加逆矩阵: l T H − 1 H x = 0 拆组: ( H − 1 l ) T ( H x ) = 0 可得: l ′ = H − T l = 0 \begin{equation} \begin{split} 已知方程:l^{T}x=0 \\ 添加逆矩阵:l^{T}H^{-1}Hx=0 \\ 拆组:({H^{-1}l})^T(Hx)=0 \\ 可得:l'=H^{-T}l=0 \\ \end{split} \end{equation} 已知方程:lTx=0添加逆矩阵:lTH−1Hx=0拆组:(H−1l)T(Hx)=0可得:l′=H−Tl=0
无穷远线表示为 [ 0 0 1 ] \begin{bmatrix} 0\\ 0\\ 1 \end{bmatrix} 001
- 无穷远线透视(射影)变换 H = [ A t v b ] H=\begin{bmatrix} A & t\\ v &b \end{bmatrix} H=[Avtb]后不再为无穷远线。
- 无穷远线仿射变换 H = [ A t 0 b ] H=\begin{bmatrix} A & t\\ 0 &b \end{bmatrix} H=[A0tb]后为无穷远线。
空间中的点和面
- 面: a x + b y + c z + d = 0 ax+by+cz+d=0 ax+by+cz+d=0
- 点: x ∞ = [ a b c 0 ] x_{\infty}=\begin{bmatrix} a\\ b\\ c\\ 0 \end{bmatrix} x∞= abc0
影消点
- 三维空间的无穷远点在二维像素平面的投影点 p ∞ = [ a b c ] p_{\infty}=\begin{bmatrix} a\\ b\\ c \end{bmatrix} p∞= abc 。
- 影消点=摄像机内参数 * 直线方向。
影消线
- 影消点的集合。
- 识别影消线有助于重构三维场景。
与平面法向量的关系
平面法向量 = 摄像机内参数转置矩阵 * 影消线
无穷远平面
- 平行平面在无穷远处相较于一条公共线——无穷远线。
- 2条或多条无穷远直线的集合定义为无穷远平面。
单视图重构
步骤
- 标定摄像机内参数
- 恢复三维场景面的信息
- 重构
缺点:手动选择影消点与影消线;需要场景先验;场景的实际比例无法恢复。