iT邦幫忙

2024 iThome 鐵人賽

DAY 3
0

3D 空間轉換

剛體變換 Rigid transformation 是由一個 3D 旋轉與 3D 位移表達:把一個3D空間的點 (x, y, z) ,先對於原點坐旋轉,再位移一段。我們可以用矩陣表示:

latex

舉個例子,假使我們想要繞著 z 軸旋轉 30 度,那麼旋轉矩陣就會長得像以前數學課本裡變得那樣

latex

以我們熟悉的2D平面旋轉再3D位移就會如下圖

image

而我們要表達相機在 3D 空間中的姿態,就可以透過一個3D旋轉和3D位移表達,也就是相機在3D空間中的位置和朝向。

齊次座標 (Homogeneous Coordinate)

前面介紹的投影和空間轉換的矩陣公式,都有一個相似的樣貌,先對 (x, y, z) 乘上一個矩陣,再加上一個向量矩陣,而齊次座標是一種更有效率的表達方式,可以用一個矩陣乘法,取代掉這個先乘後加的兩步驟。

概念上就是替原本的三維數據增加一個維度,比如說我們可以把 (x, y, z) 補上 1,寫成:

latex

這樣原本的 3D 空間轉換就會變為,如果讀者把最右邊的矩陣乘法展開,就會發現跟原本的公式是一樣的都是對於 (x, y, z) 先做旋轉,再加上一個位移

latex

因此我們可以用這個加上相機位置,剛剛 latex 代表相機的姿態或轉換。同理,我們也可以把針孔投影寫成以下的形式

latex

請注意,這邊與 3D 空間轉換有一點不同,我們自己新增的維度在經過計算之後不是 1,而這時候就要統一除以最後一個維度的值,讓最後一個維度變回 1,這就是齊次座標的定義。例如這裡真正的 latex ,才會與我們前面定義的相同。

齊次座標的功用還不只如此,還可以表達3D空間中的其他變化,例如放大縮小,Affine 轉換之類的。


上一篇
Day1: 相機與投影 (ㄧ)
下一篇
Day3: 相機與投影總結 (三)
系列文
3D 重建實戰:使用 2D 圖片做相機姿態估計與三維空間重建30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言