processing Note

カメラ利用編

processing ではカメラからの入力も比較的簡単に扱うことができます。

■カメラ利用の手順

・カメラを手に入れます。

カメラについては、i-linkでつながるビデオカメラ、WEBカメラなどさまざま
なカメラが利用可能です。

WEBカメラの場合は、比較的広く使われているLogitech社のもの(通称 q-cam 
)が相性の問題が発生しにくいようです。

僕の手元に、以前1000円くらいでかったcmosのUSBカメラでも動作していました。
また、SONYのTRV950などのカメラ+DELLのPCでも動作していました。


WEBカメラは各社からさまざまのタイプが出ていますが、場合によっては認識
しないケースもあるかもしれません。

MACの場合は内臓のカメラがそのまま利用できるようです。

また、ひと工夫必要ですが、q-cam,i-link経由のビデオなども使えるようです。

・ソフト的な準備

カメラ付属のドライバーソフトをインストールし、付属のアプリケーションで
キャプチャーなどの機能が動作しているかどうかをまず確認します。ドライバー
ソフトは、たいてい各メーカーのWEBからダウンロードできるでしょう。

windowsでカメラを使う場合

winvdigというフリーのドライバーインストールが必要になることもあるよう
です。2008現在オフィシャルサイトは閉じているようですが、配布しているサ
イトがいくつかあります。http://www.shiffman.net/vdig/WinVDIG_101.exe


・シンプルなサンプルプログラム
HELP->reference->で

captureと引けば、カメラ入力を表示する簡単なプログラム例がでてきます。
http://processing.org/reference/libraries/video/Capture.html

他にもrefrence内で camera,videoといったキーワードで検索するといろいろ
でてきます。


・MAC(OSX)で内臓カメラ以外のカメラを使う場合

macamというソフトを導入すれば動作するようです。

もともとmac os で動作することが確認されているカメラでないと難しいかも
しれません。

手順
macamのドライバー(http://webcam-osx.sourceforge.net/)をダウンロード。
コンポーネントファイルを「Library/QuickTime/」フォルダにコピー。

■ 複数のカメラが接続されている場合の選択方法


http://processing.org/reference/libraries/video/Capture.html

のサンプルプログラムのsetup()部分にある英語のコメントに従います。

1)
10行目あたりにあるコメント

 //println(Capture.list());

をはずします。

  println(Capture.list());

カメラ名の一覧が表示されます。
#winではエラーになることもありました(原因不明)。

2)
カメラの名前が得られたら、
6行目あたりのキャプチャ行を、そのカメラ名称をいれて
書き直します。



理屈のうえでは、複数のカメラ入力もできそうです。captureのインスタンス
を複数宣言し、各カメラをアサインすればできそうですが、まだ試してないです。