前文我們已經可以得到K->C座標系中的轉化了,下面我們來談一下:
首先要清楚一點,傳感器sensor的零像素點和圖像的XH中心點肯定是不重合的【fig0】,如圖所示,如果兩個中心點重合,會損失至少1/3的信息。所以才需要在圖像座標系的基礎上,做一定的平移,而移動是以XH爲基準的, 下文如果再看到大些X的標誌應該同樣理解爲座標系中的點。(XH = [xH,yH])
另外在這個轉化過程中,還存在其他的線性變化,比如
所以綜上所屬,最終線性變化的表達矩陣可以概括爲下面的形式【fig1】:(後面有設計一篇DLT的章節,其實就是線性矩陣inverse的過程)
因爲lens內部的缺陷,或是sensor的缺陷比如平面性的原因,sensor上的圖像(先這樣表示)會有非線性的變形。這些變形的量是非線性的。比如說:barrel distortion,隨着像素由中心到四個角,圖像的變形會越來越嚴重。所以這些非線性變形的量和像素的位置有關係。【fig2】【fig3】可以看到x,y的值隨q1,q2,和r(位置關係)變化。
剛纔說到S(L)->S (NL)的運算中,含有像素的位置關係的變量【fig4】,但是這些位置關係我們無法獲得,所以只能通過iteration的形式求解出來。如果整個homogeneous transformational matrix不是random的,求解收斂的過程應該是快的。
第二個過程就是一個線性過程。也是DLT求解的過程。但是我們必須知道,正如前文提到,3D到2D一定會有information loss,所以我們要求的是2D圖像上點到3D上點的方向(direction of ray)和點與點的距離;而無法直線生成3D圖形。這個過程我們通過下面的矩陣就可以完成。【fig5】
通過求解的難度我們也可以將相機分爲不同的類型。【fig6】【fig7】比如unit camera我們可以看到相機到投影面的distant constant恆等於1,且傳感器的中心和圖形中心重合,沒有非線性和線性的偏移。