BLAM (下載)校正攝影機的數學原理是透視法,簡單的說就是畫面中的平行線都會相交於一點(Vanishing Point, 消失點)。BLAM 用來校正的相片必須在畫面裡有兩組互相垂直的平行線,且沒有經過任何的裁切與經過影像處理軟體的透視修正。
將視窗切換為 Movie Clip Editor(1),按 [OPEN] (2)開啟要用來校正攝影機的照片,如下圖。
啟用 Grease Pencil (3),新增兩個圖層(4),兩個圖層的畫筆寬度(Thickness)都設為 1 (5),這樣計算的結果會比較準確。在第一個圖層描繪第一組平行線,在第二個圖層描繪另一組垂直的平行線。兩個圖層的畫筆顏色最好不一樣,方便區分,如下圖。用 Grease Pencil 繪製直線的方法是按住 CTRL+D,用 LMB 點選線段起點並拖曳,鬆開所有按鍵完成。
根據官網,每一組平行線只需要 2 條就夠了,但我卻畫了很多條。原因是現實世界中充滿缺陷,許多我們認為是平行的線條,往往並非如此。於是我便利用平行線都會相交於一點的原理,來找出適合的平行線。
上圖的紅色線看起來都交會於同一點,但黃色線就沒有那麼理想了。如下圖放大來看,我覺得交會於圈起來的位置的線段可能比較正確,因為有比較多的直線交會於此。
按 D+RMB 刪除多餘的線條。如下圖到工具側欄的 Static Camera Calibration 面板。校正方法選 two vanishing point;指定紅色圖層(first grease pencil layer)平行 Blender 的 x 軸,指定黃色圖層(second grease pencil layer)平行 y 軸; 光學中心(Optical center)選 Image midpoint;勾選 Set background image 讓 BLAM 自動把要用來校正的照片設為背景;最後按 [Calibrate active camera] 校正攝影機。
回到 3D 視窗,切換到攝影機視景,移動攝影機,讓 Blender 原點對齊任一參考點,如下圖。看起來 Blender 的座標軸與照片中的物件並不平行。這極有可能是 BLAM 計算出來的攝影機焦距可能並不正確。到 Object Data 裡的 Lens 面板中的 Focal Length 欄位,發現 BLAM 計算出來的相機焦距約為 19,而經由照片 EXIF 資訊,相當於 35mm 相機的鏡頭焦距為 28。
用 28 取代 BLAM 計算的焦距,得到了比較正確的結果,如下圖。
新增一個 Box 物件,在攝影機視景中調整大小,發現 Box 的邊緣大致都能和照片中的物件相合。至於底部的偏差,應是戶外地坪不平整的原因。
References:
Blender 學習筆記
將視窗切換為 Movie Clip Editor(1),按 [OPEN] (2)開啟要用來校正攝影機的照片,如下圖。
啟用 Grease Pencil (3),新增兩個圖層(4),兩個圖層的畫筆寬度(Thickness)都設為 1 (5),這樣計算的結果會比較準確。在第一個圖層描繪第一組平行線,在第二個圖層描繪另一組垂直的平行線。兩個圖層的畫筆顏色最好不一樣,方便區分,如下圖。用 Grease Pencil 繪製直線的方法是按住 CTRL+D,用 LMB 點選線段起點並拖曳,鬆開所有按鍵完成。
根據官網,每一組平行線只需要 2 條就夠了,但我卻畫了很多條。原因是現實世界中充滿缺陷,許多我們認為是平行的線條,往往並非如此。於是我便利用平行線都會相交於一點的原理,來找出適合的平行線。
上圖的紅色線看起來都交會於同一點,但黃色線就沒有那麼理想了。如下圖放大來看,我覺得交會於圈起來的位置的線段可能比較正確,因為有比較多的直線交會於此。
按 D+RMB 刪除多餘的線條。如下圖到工具側欄的 Static Camera Calibration 面板。校正方法選 two vanishing point;指定紅色圖層(first grease pencil layer)平行 Blender 的 x 軸,指定黃色圖層(second grease pencil layer)平行 y 軸; 光學中心(Optical center)選 Image midpoint;勾選 Set background image 讓 BLAM 自動把要用來校正的照片設為背景;最後按 [Calibrate active camera] 校正攝影機。
回到 3D 視窗,切換到攝影機視景,移動攝影機,讓 Blender 原點對齊任一參考點,如下圖。看起來 Blender 的座標軸與照片中的物件並不平行。這極有可能是 BLAM 計算出來的攝影機焦距可能並不正確。到 Object Data 裡的 Lens 面板中的 Focal Length 欄位,發現 BLAM 計算出來的相機焦距約為 19,而經由照片 EXIF 資訊,相當於 35mm 相機的鏡頭焦距為 28。
用 28 取代 BLAM 計算的焦距,得到了比較正確的結果,如下圖。
新增一個 Box 物件,在攝影機視景中調整大小,發現 Box 的邊緣大致都能和照片中的物件相合。至於底部的偏差,應是戶外地坪不平整的原因。
References:
Blender 學習筆記
留言
張貼留言