画像処理2

Filed in processing , 制作応用演習(グラフィカルプログラミング演習) 0 comments

今回は画像処理の2回目です。
前の画像処理1の内容は、原理的なことに触れているので、結構難しかった人もいるかと思います。
今回は、インタラクティブアート作品に利用するためのより実践的な方法を学びます。

まず、これから扱うプログラムを正常に動かすために、露出固定が可能なカメラを使用してください。MacBookなどに搭載されているカメラやUSBカメラにはこのような機能が付いていないので、Firewire (iLink)が付いているDVカメラなどが一番適しています。
インスタレーションなどに使う場合は、Firewireの長さに限界がある(最長4.5m)ので、長く繋ぎたい場合には、通常のビデオコードをカメラに付け、パソコンには、アナログ-DVコンバータでFirewire接続します。

ビデオコードの例
アナログ-DVコンバータ

1. フレーム差分

まずは、カメラの前で対象物(人など)が動いた場合に、その変化量を計算するプログラムです。
これを画像処理の用語で「フレーム差分」と言います。

サンプルダウンロード

processingcorepappletscreensnapz004.jpg

movementSumに動いたピクセルの総数が代入されます。
この場合は640 x 480の画面なので、フレームごとのピクセルは307200ピクセルとなります。
ですから、動作量は0 ~ 307200の値を取ります。
これは単純にint型の変数なので、少し動いた、かなり動いた、激しく動いたなどという動作量を扱うことができますね。

2. 背景画像の黒抜き

次は、フレーム差分の応用で、「背景画像の黒抜き」です。

サンプルダウンロード

processingcorepappletscreensnapz005.jpg

画面上のマウスクリックによって、backgroundPixelsにその時点の画像が保存され、その保存された画像と現在の映像を比較して変化した部分だけに映像が表示されます。

3. BlobDetection

今回は、ライブラリの一種であるBlobDetectionを使用します。かなりよくできたライブラリなので、オブジェクトの位置を認識するようなプログラムが簡単に書けてしまいます。

参考:
http://jp.youtube.com/watch?v=2syCUEJcvLM
http://jp.youtube.com/watch?v=k_TKwb-RWB8
http://jp.youtube.com/watch?v=NaUWAlSVFQA
http://jp.youtube.com/watch?v=oMmSEkAOF4s&feature=related

まずは、色の差が極端な場所を探し、その縁に円を描いていくプログラムです。

サンプルダウンロード

processingcorepappletscreensnapz002.jpg

次に、オブジェクトの位置を検出するプログラムです。

サンプルダウンロード

processingcorepappletscreensnapz003.jpg

5. 参考:reacTIVision

reacTIVisionというライブラリを紹介します。

参考
http://jp.youtube.com/watch?v=J78U4Hu0qws
http://jp.youtube.com/watch?v=VfipEyEmHx0
http://jp.youtube.com/watch?v=fPOQqF-o1Ec

ダウンロードするファイルは2つあります。

1. reacTIVision vision engine
reacTIVision-1.4pre1-w32.zip (Win32)
reacTIVision-1.4pre1-mac.zip (MacOS X)

ここではMacでの利用法を解説します。
ダウンロードしたzipファイルを解凍すると、「reacTIVision-1.4」フォルダになるので、その中のsimbols –> amoeba.pdf をプリントする。原寸か、70%ぐらいの出力でいいでしょう。

finderscreensnapz001.jpg  reactivision02.png

2. reacTIVision client examples
Processing: TUIO_Processing.zip

解凍すると「TUIO_Processing」フォルダになるので、その中の「tuio」フォルダを、processingのlibrariesフォルダに入れる。
finderscreensnapz004.jpg

3. 「reacTIVision-1.4」フォルダの「reacTIVision.app」を起動する。すると、カメラ選択画面が出てくるので、使用するカメラを選択する。

reactivisionscreensnapz003.jpg

キャプチャ画面が出てくるので、そこにプリントしたパターンを映すと個体番号が表示され、それぞれの個体が認識されていることが分かる。

reactivisionscreensnapz004.jpg

4. この「reacTIVision.app」が起動している状態で、「TUIO_Processing」フォルダの中の「TuioDemo」を実行すると、processingの画面上の四角形が、それぞれのパターンに対応して動く。

finderscreensnapz005.jpg

processingcorepappletscreensnapz001.jpg

うーん、よくできてますね。これがフリーソフトとは・・・

Posted by noguchi   @   22 6月 2008 0 comments

0 Comments

Sorry, comments are closed.

Previous Post
«
Next Post
»
Stroom designed by Credit Cards In conjunction with Web Hosting Reseller , Dream Interpretation Guide , Best Website Hosting.