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\)

2018年12月15日 星期六

20181215二坑口姜子寮公園

2018/12/15 9:27從菁桐附近的二坑口出發,走菁桐古道經魔神仔洞、福興宮/磐石嶺車站、石硿大崙、姜子寮山、姜子寮古道、古厝遺址、三次脫鞋涉溪、姜子寮絕壁,15:53 到達姜子寮公園,耗時約6個半小時。


2018年11月25日 星期日

20181125薯榔尖石筍尖

2018/11/25 09:07 795公車一坑口站出發,經薯榔尖、魔神仔洞、石筍尖登山北稜、石筍尖,15:48 到達二坑口,耗時約7小時,其中石筍尖北稜登山稜線到石筍尖之間的路不好走,需有心理準備,有懼高症者不建議前往。


2018年11月18日 星期日

20181111凌雲寺關渡捷運

2018年11月11日,10:34從凌雲寺出發,經凌雲禪寺、弱者俱樂部、眾樂園、觀音山、占山,15:47到關渡捷運站,全長約11公里,耗時約5小時。全程路況良好,雖有一小段行經墓區,但有路條指引。

2018年10月21日 星期日

20181021泰山凌雲寺


2018年10月21日,早上9:36由泰山區公所出發,經水碓觀景公園、聯勤助航站、五股動物之家、外寮崙山、水尾山、水尾北峰、觀音山福園、廖添丁洞、牛港稜山、觀音遊客中心、凌雲禪寺、凌雲寺到凌雲寺公車站,耗時約7小時。

其中,水尾山與北峰之間路徑被雜草淹沒較不明顯,應帶登山杖打草驚蛇。

20181007頂埔迴龍

2018年10月7日8:49從頂埔捷運站出發,經柑城橋、柑園二橋、牛埔山、大棟山、鎮遠山、大青坑崙山、北靈宮、青龍嶺、三角埔山、三福山、新北市忠靈祠、武器公園,16:32到迴龍捷運站,耗時約七個半小時,全長約17公里。

20181010迴龍泰安

2018年10月10日,10:28由迴龍捷運站出發,經神箭營區、泰山巖、崎頂步道、山頂公園健身中心、瓊仔湖福德宮、瓊仔湖山、山腳頂山、泰北高中,14:22到達泰山區公所站,耗時約4小時,全長約9公里