概要
マーカーベースのARプログラムを作成するためのライブラリとしてARToolKitというものがあるが、
それのProcessing版であるNyARToolkitを使用して簡単なARプログラムを作成してみる。
実装
ここから
ライブラリをダウンロードして中身を一式、processingのホームディレクトリ以下のlibraries(なければ作成する)フォルダの中に移動する。
そしてディレクトリ名をnyar4psgにする。
次にプログラムを書く。
import jp.nyatla.nyar4psg.*;
import processing.video.*;
// Definition camera device interface
Capture cam;
MultiMarker ar;
// Marker ID
int id;
void setup() {
// Set size
size(640,480,P3D);
// Create camera device interface
cam = new Capture(this, width, height);
ar = new MultiMarker(this, width, height, "camera_para.dat", NyAR4PsgConfig.CONFIG_PSG);
// Register marker
id = ar.addARMarker("patt.hiro", 60);
}
void draw() {
// Check whether camera is available
if (cam.available() == false) return;
// Get camera image
cam.read();
// Draw camera image
background(0);
ar.drawBackground(cam);
// Detect marker
ar.detect(cam);
if (ar.isExistMarker(id)) {
// Draw box
ar.beginTransform(id);
fill(116,163,241,100);
translate(0,0,15);
box(30);
ar.endTransform();
}
}
プログラムを書いたら保存して。
そのディレクトリ以下に、nyar4psg/dataディレクトリをコピーする。
実行結果
印刷したマーカーをカメラにかざすと以下のような結果が得られる。