Two Method Of Perception Matrix with 4 points
线性代数推导
- 参考
- 对于点x经过H变换后有如下公式
⎣⎢⎡y′x′1⎦⎥⎤=H⎣⎢⎡xy1⎦⎥⎤=⎣⎢⎡h11h21h31h12h22h32h13h23h33⎦⎥⎤⎣⎢⎡xy1⎦⎥⎤
- 根据一个点,我们可以得到两个方程组
x′y′=h31x+h32y+h33h11x+h12y+h13=h31x+h32y+h33h21x+h22y+h23
- 其中h31x+h32y+h33 用于表示一个未知的倍数变量
- 表示成矩阵形式有
[x0y0100x0y01−x′x−y′x−x′y−y′y−x′−y′]⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡h11h12h13h21h22h23h31h32h33⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤=0
- 4点联立,有
⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡x10x20x30x40y10y20y30y40101010100x10x20x30x40y10y20y30y401010101−x1′x1−y1′x1−x2′x2−y2′x2−x3′x3−y3′x3−x4′x4−y4′x4−x1′y1−y1′y1−x2′y2−y2′y2−x3′y3−y3′y3−x4′y4−y4′y4−x1′−y1′−x2′−y2′−x3′−y3′−x4′−y4′⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡h11h12h13h21h22h23h31h32h33⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤=0
- 当左侧矩阵可逆时,方程又解,令h3为1,求解其他h
构造基向量
- 我们需要求映射H, 使得Ha=a’,…,Hd=d’
- 由于a,b,c三点线性无关,因此,总可以找到一种比例α,β,γ 使得αa+βb+γc=d
- 写成矩阵形式为
A⎣⎢⎡111⎦⎥⎤=[αaβbγc]⎣⎢⎡111⎦⎥⎤=d
- 同理, 由于空间不变性,在射影空间中,a’,b’,c’依然线性无关
B⎣⎢⎡111⎦⎥⎤=[α′a′β′b′γ′c′]⎣⎢⎡111⎦⎥⎤=d′
- 那么我们可以变换一下,有
⎣⎢⎡111⎦⎥⎤=A−1d=B−1d′BA−1d=d′Hd=d′
- H=BA−1即为所求矩阵
计算例子(1)
(1,0,0)(0,1,0)(0,0,0)(1,1,1)→(1,0,0)(0,1,0)(0,0,0)(2,1,1)
M=⎣⎢⎡200010001⎦⎥⎤
计算例子(2)
(0,0,1)(1,1,1)(1,0,1)(0,1,1)→(0,0,1)(1,1,1)(1,0,0)(0,1,0)
A=⎣⎢⎡−10−10−1−1001⎦⎥⎤
计算例子(3)
(1,0,0)(0,1,0)(0,0,1)(1,1,1)→(−2,0,1)(0,1,−1)(−1,2,−1)(−1,1,1)
A=⎣⎢⎡−32031035−351−21⎦⎥⎤
Cross-ratio[交比定理]

CR = lambda ac,ad,bc,bd: ac*bd/bc/ad
- 定义: Cross-ratio A,B;C,D=ADAC:BDBC
- 有A,B;C,D=A’,B’;C’,D’
- 性质
- 影射[Perception transform]不变性
- 利用三角形面积证明
{A,B;C,D}=ADAC:BDBC=AD⋅BCAC⋅BD=S△ADO⋅S△BCOS△ACO⋅S△BDO=AO⋅DOsin(∠AOD)⋅BO⋅COsin(∠BOC)AO⋅COsin(∠AOC)⋅BO⋅DOsin(∠BOD)=sin(∠AOD)sin(∠BOC)sin(∠AOC)sin(∠BOD)
利用交比定理计算

- 求解火车到下一个火车站的距离
- 由图知,A’B’=2,A’C’=4,C’D’=4
- 有A’,B’;C’,D’=A’D’A’C’:B’D’B’C’=61
- 已知AC=50km, from image
next station 50km
- A’,B’;C’,D’=A,B;C,D=BCAC, 由于D点在无穷远,因此,BDAD≃1
- BC=33.33km
寻找灭点[Vanishing point]

- 求解灭点D在图像中的位置
- 根据图片,有A’D’A’C’:B’D’B’C’=BCAC
- 因为是瓷砖
- 所以BCAC=2
- 那么如果已知A’,C’,D’的位置,即可计算出D’的位置