Homography求解与基于eigen库的c++实现
前言
在使用标志物识别与跟踪技术中,利用homography来描述两个视图中标志物平面之间的映射关系。
一、理论推导
当两个视图中拥有相同的一个平面时,可以根据平面来估计视图之间的映射关系,并称之为单应性矩阵。
在世界中一个点 P [ X , Y , Z ] P[X,Y,Z] P[X,Y,Z],在两张图像中的位置分别为 p 1 , p 2 p_1,p_2 p1,p2,则有下列关系:
n T P + d = 0 \boldsymbol n^T\boldsymbol P+d=0 nTP+d=0
− n T P d = 1 -\frac{\boldsymbol n^T\boldsymbol P}{d}=1 −dnTP=1
同一点在两张视图中的映射关系:
p 1 = K ( P ) \boldsymbol p1 = K(\boldsymbol P) p1=K(P)
p 2 = K ( R P + t ) \boldsymbol p_2=K(\boldsymbol R\boldsymbol P+\boldsymbol t) p2=K(RP+t)
p 2 = K ( R P − t n T P d ) \boldsymbol p_2 = K(\boldsymbol R \boldsymbol P - \boldsymbol t\frac{\boldsymbol n^T\boldsymbol P}{d}) p2=K(RP−tdnTP)
p 2 = K ( R − t n T d ) P \boldsymbol p_2 = \boldsymbol K(\boldsymbol R-\boldsymbol t\frac{\boldsymbol n^T}{d})\boldsymbol P p2=K(R−tdnT)P
p 2 ∼ K ( R − t n T d ) K − 1 p 1 \boldsymbol p_2 \sim \boldsymbol K(\boldsymbol R-\boldsymbol t\frac{\boldsymbol n^T}{d})\boldsymbol K^{-1}\boldsymbol p_1 p2∼K(R−tdnT)K−1p1
所以,化简得到点的映射关系:
p 2 ∼ H p 1 \boldsymbol p_2 \sim \boldsymbol H \boldsymbol p_1 p2∼Hp1
( u 2 v 2 1 ) ∼ ( h 1 h 2 h 3 h 4 h 5 h 6 h 7 h 8 h 9 ) (