動画像処理: computer vision with proce55ing


ここではTemporalDifferecingを例に,実際にProcessingで実行する方法を紹介します.

使用するコンピュータにProcessingがインストールされていない場合は,こちらのページから最新版のProcessingをダウンロードし,インストールしてください.


ソースファイルとデータファイルの準備

SRCのページからTemporalDifferecingのソースをダウンロードします. ダウンロードしたzipファイルを任意の場所で解凍します. 解凍すると「TemporalDifferecing」というフォルダができるので,そのフォルダを「My Documents\Processing\」内にコピーします.
Macの場合は「~/Documents/Processing/」内にコピーします.
また,このとき解凍してできたフォルダ名と,その中にあるpdeファイル名は同じになるようにしてください(例えば,フォルダ名がTemporalDifferecingならpdeファイル名もTemporalDifferecing.pde).

次に,TemporalDifferecingで使用する画像データをDATAのページからダウンロードします.ここでは例としてWALKというデータを使用します. ダウンロードしたWALK.zipを解凍すると,連番の画像ファイルが含まれる「WALK」というフォルダが作成されます. このWALKフォルダを先ほどコピーしたTemporalDifferecingフォルダ内の「data」フォルダ内にコピーします.
このように,Processingで使用するデータはdataフォルダ内に格納します.

シーケンスとしてWALKを使用する場合は,ここまでの設定で実行することができます.
他のシーケンスを使用する場合は,ソースファイル(*.pde)の設定を行います.


pdeファイルの設定

Processingを起動させます. メニューバーの「File」->「Sketchbook」->「TemporalDifferecing」を選択するとpdeファイルが開きます. ただし,フォルダ名とpdeファイル名が一致していない場合は選択できないので,必要に応じて修正してください.

入力ストリームの設定を行います.

 int input_stream = 1;

入力ストリームが1のときは,画像データ(例.WALK)を使用します. Webカメラからの映像を使用するときは,入力ストリームを2に設定します.
※すべてのソースがWebカメラからの入力に対応しているわけではありません.
画像データを使用するときは,以下の設定を行います.

 String prefix = "f";

これは画像ファイルのプレフィクスです.例えば"f0001.jpg"というファイルならば"f","ex-0000001.jpgというファイルなら"ex-"と設定します.

 String DIR = "WALK/";

これは画像ファイルが存在するフォルダのプレフィクスです.例えば画像ファイルが存在するフォルダがWALKなら"WALK/",roomなら"room/"と設定します.

 int frame_s = 1;
 int frame_e = 528;

frame_sは開始フレーム番号,frame_eは終了フレーム番号です.実際に使用する画像データにあわせて設定してください.WALKの場合は1〜528になります.存在しないフレーム番号を設定した場合はエラーとなります.

 String filename = DIR + prefix + nf(frame, 4) + ".jpg";

これは画像ファイル番号の桁数の設定と画像ファイルの拡張子の設定です. Processingでは".gif",".jpg",".tga",".png"の画像ファイルを読み込むことが可能です. ここでは".jpg"ファイルを読み込んでいます.
また,nf()で画像ファイル番号の桁数を設定しています.例えば読み込む画像ファイルが"f0024.jpg"ならば"nf(frame, 4)","ex-0000001.jpg"なら"nf(frame, 7)"のように,0を含む桁数を設定してください.


以上でpdeファイルの設定は終了です.
Runボタンで実行します.ESCキーで処理が終了します.その他ソースにより様々なキー操作が可能です.キー操作の詳細は,SRCページから行くことができるappletの実行ページを参照してください.



Fujiyoshi Laboratory, Dept. of Computer Science, Chubu University.