NyARToolkit for processing NyAR4psg-0.1.0をリリースします。
日本語NyARToolkit project website is moved.
EnglishNyARToolkit project website is moved.
英語の自信はありません。
とりあえず、今のところは1個の1マーカを検出して、その変換行列を得る機能だけですが、Processingにするとどんな良いことがあるか、紹介したいと思います。
Processing版のイイトコ
準備のためのコードがとても少ない。
本家ARToolkit、他言語のNyARToolkitと違って、ARToolKit機能を利用するための手数がとても少ないです。
SimpleLiteみたいなものでよければ、たったこれだけ。
import processing.video.*; import jp.nyatla.nyar4psg.*; import processing.opengl.*; import javax.media.opengl.*; Capture cam; NyARBoard nya; void setup() { size(640,480,OPENGL); colorMode(RGB, 100); cam=new Capture(this,width,height); nya=new NyARBoard(this,width,height,"camera_para.dat","patt.hiro",80); } void draw() { background(255); if (cam.available() ==true) { cam.read(); image(cam,0,0); if(nya.detect(cam)){ PGraphicsOpenGL pgl = (PGraphicsOpenGL) g; nya.beginTransform(pgl); noFill(); stroke(255,200,0); translate(0,0,20); box(40); nya.endTransform(); } } }
32行しかありません。
解析に使う画像が汎用イメージ
nya.detect(cam)の行で渡しているcamは、PImage(Processing内で使う汎用イメージ)オブジェクトです。つまり、この形式を返すあらゆるイメージを解析のソースにすることができます。静止画とか、動画とかもできるかも?
プラットフォーム依存しない(はず)
NyAR4psgはPureJavaなので、Processingが動作すれば、どこでも動きます。
というわけで、ちょっと拡張現実を試したりするにはとても良い環境です。ぜひぜひ使って下さい。APIマニュアルは…年内には書く予定です。
おまけ
jARToolKitベースのsimpleARToolKitと何が違うかの説明。
画像取得
対してNyAR4psgは、CaptureライブラリでPImageを取得して、それを入力する形。
simpleARToolKitは、キャプチャ画像をJNI経由で直接取得して、描画コールバック関数もdraw関数と別のシーケンスで動く。
simpleARToolKitはprocessingに新しいシーケンスを導入しなければいけないけど、NyAR4psgは描画→解析をdraw関数内でprocessingらしく書ける。この辺がこだわり。
ごめん嘘ついた
simpleARToolKitもPimage経由での画像入力に対応をしていますね。なんという勘違い。ただし、中身を少しいじらないといけないみたいですが。
画像入力
simpleARToolKitは、カメラ以外からの映像入力できない。対してNyAR4psgは、PImage形式なら何でも受け付ける。PImageを経由するので、直結より少し遅くなるけど、例えば前処理をしてからNyAR4psgのマーカ検出処理とかをする事もできる。
simpleARToolKitの新バージョンではPImage入力が出来るので、打消し線部分は嘘になります。
背景描画
simpleARToolKitは、カメラ画像を描画するAPIを使う。対してNyAR4psgは、processingの標準命令を使って描画する。ある意味、美しい(?)
PImageを描画するようになったみたいです。
おまけ2(processingライブラリの作り方とか)
processingライブラリ作成には、以下のページを参考にしました。
開発は、まずprocessingでプロトタイプを作って、そこからJavaに落とす方法がお勧めです。
- 404 Not Found
- processing - An open source programming language and environment for creating images, animation, and interactions - Google Project Hosting
参考書籍
参考になる書籍が有れば教えてください。