2020年6月18日 星期四

投影轉換

投影幾何 Projective Geometry

維基百科Projective geometry

對初學投影幾何的讀者來說,Tom Davis 寫的 Projective Geometry, 是很好的入門文章。 若要了解Computer Graphics,zisser-mundy 寫的Projective Geometry for Machine Vision 更加實用。

Duke 大學的課程,提到 Eight Point Akgorithm, 用兩個照相機拍同一實景所得兩張照片的8對對應位置,可以推算出兩相機的相對位置、角度與實景的空間座標。

齊次座標與非齊次座標

齊次座標\(P=(x,y,z)^T\) 對應的非齊次座標為 \(\overline{P}=(x/z,y/z,1)^T\)

投影轉換

投影轉換可用一個 \(3\times3\)矩陣 \(A\) 表示 \[ A=\left[ \begin{matrix} a_{11} & a_{12} & a_{13}\\ a_{21} & a_{22} & a_{23}\\ a_{31} & a_{32} & a_{33}\\ \end{matrix} \right] \] 它將齊次座標\(P=(x,y,z)^T\) 轉換到齊次座標\(P'=(x',y',z')^T\),關係如下: \[P'=AP\] 它將非齊次座標\(\overline{P}=(x,y,1)^T\) 轉換到非齊次座標\(\overline{P}'=(x',y',1)^T\),關係如下: \[\alpha\overline{P}'=A\overline{P}\] 其中 \( \alpha \) 是不等於 0 的常數。

註:A 乘以不等於 0 的常數仍是同一個轉換

定理: 若 (1) \(P_1,P_2,P_3,P_4\)為相異的四點,任三點不共線,(2) \(P_1',P_2',P_3',P_4'\)為相異的四點,任三點不共線, 則存在唯一的投影轉換 A 能將 \(P_1,P_2,P_3,P_4\) 分別轉換到 \(P_1',P_2',P_3',P_4'\)。

證明:

\(A\) 將 \(\overline{P}_1\equiv (x_1,y_1,1)\) 對應到\(\overline{P}_1'\equiv (x_1',y_1',1)\),代表存在 \(\alpha\) 滿足 \[ \alpha \left( \begin{matrix} x_1'\\y_1'\\1 \end{matrix} \right) =\left[ \begin{matrix} a_{11} & a_{12} & a_{13}\\ a_{21} & a_{22} & a_{23}\\ a_{31} & a_{32} & a_{33}\\ \end{matrix} \right]\left( \begin{matrix} x_1\\y_1\\1 \end{matrix} \right) \] 得 \[ \alpha x_1'=a_{11}x_1+a_{12}y_1+a_{13} \] \[ \alpha y_1'=a_{21}x_1+a_{22}y_1+a_{23} \] \[ \alpha =a_{31}x_1+a_{32}y_1+a_{33} \] 整理成 \[ x_1'(a_{31}x_1+a_{32}y_1+a_{33})=a_{11}x_1+a_{12}y_1+a_{13} \] \[ y_1'(a_{31}x_1+a_{32}y_1+a_{33})=a_{21}x_1+a_{22}y_1+a_{23} \] 再整理成 \[ x_1 a_{11} +y_1 a_{12}+a_{13}-x_1'x_1a_{31}-x_1'y_1a_{32}-x_1'a_{33}=0 \] \[ x_1 a_{21} +y_1 a_{22}+a_{23}-y_1'x_1a_{31}-y_1'y_1a_{32}-y_1'a_{33}=0 \] 同理,針對\( (\overline{P}_2,\overline{P}_2'),(\overline{P}_3,\overline{P}_3'), (\overline{P}_4,\overline{P}_4')\) 也各有兩個方程式,共8個方程式用矩陣表示 \[ \left[ \begin{matrix} x_1 & y_1 & 1 &0 & 0 & 0 & x_1'x_1 & x_1'y_1 & x_1'\\ x_2 & y_2 & 1 &0 & 0 & 0 & x_2'x_2 & x_2'y_2 & x_2'\\ x_3 & y_3 & 1 &0 & 0 & 0 & x_3'x_3 & x_3'y_3 & x_3'\\ x_4 & y_4 & 1 &0 & 0 & 0 & x_4'x_4 & x_4'y_4 & x_4'\\ 0 & 0 & 0 &x_1 & y_1 & 1 & y_1'x_1 & y_1'y_1 & y_1'\\ 0 & 0 & 0 &x_2 & y_2 & 1 & y_2'x_2 & y_2'y_2 & y_2'\\ 0 & 0 & 0 &x_3 & y_3 & 1 & y_3'x_3 & y_3'y_3 & y_3'\\ 0 & 0 & 0 &x_4 & y_4 & 1 & y_4'x_4 & y_4'y_4 & y_4' \end{matrix} \right] \left[ \begin{matrix} a_{11}\\ a_{12}\\ a_{13}\\ a_{21}\\ a_{22}\\ a_{23}\\ a_{31}\\ a_{32}\\ a_{33} \end{matrix} \right]=0 \] 只要證明上式左側的 \(8\times 9\)矩陣 \(B\) 的秩為8定理就得證。 明顯的,\(B\) 前四列的列空間與後四列的列空間之交集為0, 因此只要證明前後四列的秩皆為4,也就是要證明前四列線性獨立後四列也線性獨立。

假設 \((s,t,u,v)\) 為非零向量滿足
\(s(x_1 , y_1 , 1 ,0 , 0 , 0 , x_1'x_1 , x_1'y_1 , x_1')+ t(x_2 , y_2 , 1 ,0 , 0 , 0 , x_2'x_2 , x_2'y_2 , x_2')+\)
\(u(x_3 , y_3 , 1 ,0 , 0 , 0 , x_3'x_3 , x_3'y_3 , x_3')+ v(x_4 , y_4 , 1 ,0 , 0 , 0 , x_4'x_4 , x_4'y_4 , x_4')=0\)
則\(s(x_1 , y_1 , 1)+t(x_2 , y_2 , 1)+u(x_3 , y_3 , 1)+v(x_4 , y_4 , 1)=0\)而且 \(sx_1'(x_1 , y_1 , 1)+tx_2'(x_2 , y_2 , 1)+ux_3'(x_3 , y_3 , 1)+vx_4'(x_4 , y_4 , 1)=0\)

沒有留言:

張貼留言