FlashやC#.NETやC++でwebcamを色々扱ってきたけど、キャプチャとピクセル単位の処理と保存とネットワークに乗せる事に関してはprocessingが一番シンプルにできるらしい。

フレームをマウスクリックするとキャプチャしてファイルに保存する。

Proce55ingでwebcam撮影、ファイルに保存

Source Code (processing 0124 Beta)



 

/***

CaptureandSaveFrame



Compiler:Processing0124Beta

Date:2007/4/29

Author:ShoHashimoto

WebSite:http://shokai.org

***/

importprocessing.video.*;

Capturecamera;

voidsetup(){

size(640,480);//width,height

camera=newCapture(this,width,height,12);//12fps

}

voiddraw(){

image(camera,0,0);

}

voidcaptureEvent(Capturecamera){

camera.read();

}

voidmousePressed(){

println(“saveFrame”);

saveFrame(“####.jpg”);

}

Flash(AS2)はFMSを使わなければファイルへの書き込みができないのと、普通のSocketが無いのが駄目だ。用途とセキュリティポリシー上そうなっているんだろうけど。

AS3とApolloフレームワークはそこが改善されている。(なんか怖い気もする)

C#.NETはそもそもDirectShowが存在しないので、webcamを扱うにはDirectShow.NETを使う事になる。(もしくはOpenGL)

C++は、なんか難しかった。