2017年3月12日

用python搭載兩台webcam製作立體影片

用anaglyph去youtube查,可以看到很多立體影片,我在講到神經系統的時候,有時就會發下紅藍立體眼鏡,讓學生在教室裡看一下立體電影。

如果是要做立體圖片,倒還簡單一些,用電腦的話,就用StereoPhoto Maker或Gimp都可以。
詳見文章:
用StereoPhoto Maker做各種立體圖片
用GIMP作立體相片

而現在人手一台智慧型手機,要用手機做立體相片也是很容易就能作到的,各位可以用anaglyph去查app,就可以看到不少。

不過如果是要製作影片的話,那就有點難度了,同時用兩台攝影機拍攝不是問題,問題在於兩個影片要能在時間上對在一起。我曾經想過幾種作法,如果是用兩台一樣的攝影機(或相機)架好固定的距離之後,再用工具讓相機同時拍攝,這樣就可以在電腦裡合成。而如果要時間軸對在一起,還可以在拍攝的前段錄製一段氣球爆炸聲,最後在編輯軟體中用音軌對在一起。不過這些想歸想,都沒有實際製作就是了。

而前些時候,在用python和OpenCV在玩webcam的時候,突然就想到可以用這來試試。反正影像合成輸出影片我已經會了,只差同時接收兩個webcam影像了。

這在python中實現也相當容易,會收一個webcam就會收兩個,就這樣而已
cameraCapture0 = cv2.VideoCapture(0)
cameraCapture1 = cv2.VideoCapture(1)

接下來的思維就是把每個擷取到的像素運算一下,套疊不同的色板,模式就用screen。這是數年前用GIMP在玩的時候,學會的套疊方式,在GIMP的說明中可以看到計算的方式。

不過目前學習的階段,還沒有把聲音一起擷取和匯出,所以做出來的影片是無聲的。

程式碼就放在github上
https://github.com/ChihHsiangChien/2webcamMakeAnaglyph