簡単にProcessingでARできます.
環境
Processing 3.3
NyARToolkit 5.0.5
環境構築
1.ProcessingサイトからProcessing本体をダウンロードし,解凍する.
2. githubからNyARToolkitをダウンロードし,解凍する.
3. Processingのスケッチブックフォルダ下のlibrariesフォルダ(無ければ作成)の下に,2で解凍したNyARToolkitをフォルダごとコピーし,フォルダ名を nyar4psg とする.
Processingのスケッチブックフォルダの場所は,環境設定を開くと一番上に書いてあります.
4. サンプルを動かして確認. nyar4psg/data/pattHiro.pdf を印刷しておき,nyar4psg/examples/simpleLite/simpleLite.pde を起動して,ARが動けばOKです.
自作のマーカーでAR
nyar4psg/examplesの中のnftFilesGenを使って自作マーカーが作成できます.
importからマーカーにしたい画像を取り込み,Make Feature Set で特徴点を検出します.
特徴点がうまく検出できない場合は,下のパラメーターを変更して,青と赤の点の数がなるべく同じくらいになるようにするといいようです.
特徴点検出後は,Exportから Save FeatureSet Files で,nyar4psg/data/ の下に保存します.
nyar4psg/examples/simpleNft/simpleNft.pde を起動し,21行目 nya.addNftTarget(“../../data/susaka”,160); の対象ファイル名を変更します.
/** NyARToolkit for proce55ing/1.0.0 (c)2008-2016 nyatla airmail(at)ebony.plala.or.jp This sample handles a NFT target. The NFT target files are infinitycat.*. */ import processing.video.*; import jp.nyatla.nyar4psg.*; Capture cam; MultiNft nya; void setup() { size(640,480,P3D); colorMode(RGB, 100); println(MultiMarker.VERSION); cam=new Capture(this,640,480); nya=new MultiNft(this,width,height,"../../data/camera_para5.dat",NyAR4PsgConfig.CONFIG_PSG); nya.addNftTarget("../../data/susaka",160);//id=0 cam.start(); } void draw() { if (cam.available() !=true) { return; } cam.read(); nya.detect(cam); background(0); nya.drawBackground(cam);//frustumを考慮した背景描画 if(!nya.isExist(0)){ return; } nya.beginTransform(0); fill(255,0,0); translate(-80,55,20); box(40); nya.endTransform(); }
結果
かなりの精度で認識してくれます.三次元的に角度をつけても大丈夫.
これだけお手軽にAR実装できると,色んな場面で使えそうです.