2010年6月8日火曜日

NyARToolkit for Java 2.3.2 を MacOSX/Eclipse でやってみた.'再: NyARToolkit for Java: QtJavaで読み込んで JOGLで書き出す'

動機
二年ぐらい前の怪しいエントリーOpenCV/JNIを利用したのと合わせて前回ぐらい簡単に書き直せないかしら.


感謝
各リンク先リソースに感謝!


やってみた
0. EclipseにJavaプロジェクトを作成
0.a ファイルのエンコーディングを'UTF-8'にしておく.


1. OpenCV
1.a OpenCV.Frameworkの取得とインストール
こちらのサイトの'1. Begin by downloading and installing the implementation of OpenCV appropriate to your platform:'のFor MacOSXの通りに実行
1.b OpenCV.jarの取得
こちらのサイトの'2. Download, unzip, and move the OpenCV Processing Library into your Processing libraries folder, or for Java users copy the content of the library folder in one of your Java Extensions folder.'の'OpenCV Processing Library'部のアンカーからopencv_01.zipをdownload.
1.c OpenCV.jarの設置
展開した中にある'library'フォルダをプロジェクトルートへDnD等で設置
library/OpenCV.jarをbuild pathに追加


2. JOGL
2.a 取得
こちらのサイトのjogl-1.1.1-macosx-universal.zip)をdownload.
2.b 設置
展開した中にある'lib'フォルダをプロジェクトルートへDnD等で設置
lib/gluegen-rt.jar, lib/jogl.jarをbuild pathに追加


3. NyARToolkit
3.a 取得
こちらのサイトよりNyARToolkit for Java - NyARToolkit CoreのNyARToolkit-2.5.2.zipをdownload
3.b 設置
展開した中にある'Data'フォルダをプロジェクトルートへDnD等で設置
展開した中にある'src/jp'フォルダをソースフォルダへDnD等で設置
展開した中にある'src.util/qt/jp'フォルダをソースフォルダへDnD等で設置
jp.nyatla.nyartoolkit.qt.utils packgageの QtCameraCapture.java削除
展開した中にある'src.util/jogl/jp'フォルダをソースフォルダへDnD等で設置
展開した中にある'sample/jogl/jp'フォルダをソースフォルダへDnD等で設置
jp.nyatla.nyartoolkitjogl.sample packageのJavaSimpleLite.javaを除いて削除(この時点ではJavaSimpleLite.javaにはエラーが出ているはず.)

3.c 追加
こちらの'Eclipse/09. Create the 'test.CameraCapture.java' file.'と同じように'text.CameraCapture.java'という以下のファイルを追加作成する

3.d 編集
jp.nyatla.nyartoolkitjogl.sample.JavaSimpleLite.javaを編集

  • 'JmfCaptureListener'を'QtCaptureListener'へ置換

  • 'JmfNyARRaster_RGB'を'QtNyARRaster_RGB'へ置換

  • 'JmfCaptureDevice'を'CameraCapture'へ置換

  • 'JavaSimpleLite'クラスの'onUpdateBuffer'メソッドの引数の型を'Buffer'から'byte[]'へ置換

  • 'JavaSimpleLite'クラスの'onUpdateBuffer'メソッド内,QtNyARRaster_RGBインスタンスのsetBufferメソッドをwrapBufferメソッドに置換


  • ここまでで残るはキャプチャとラスタの準備部だけがエラーになっているはず


  • で該当部をザックリコメントアウトして以下の様に追加する
    _capture = new CameraCapture(SCREEN_X, SCREEN_Y, 30f);
    _capture.setCaptureListener(this);
    _cap_image = new QtNyARRaster_RGB(SCREEN_X, SCREEN_Y);


  • あとはCARCODE_FILEとCARCODE_FILEの相対パスを"../../Data…"から"./Data…"に置き換える


ここまでのプロジェクトの状態


4. 実行
jp.nyatla.nyatoolkit.jogl.sample.JavaSimpleLite.javaを実行
実行時にはVM引数として'-d32 -Djava.library.path=./library:./lib'をつける.

0 件のコメント: