ARToolKit Java class library NyARToolkit.\r
Copyright (C)2008-2010 Ryo Iizuka\r
\r
-version 2.5.1\r
+version 2.5.2\r
\r
http://nyatla.jp/nyartoolkit/\r
airmail(at)ebony.plala.or.jp\r
\r
\r
\r
-・NyARToolkit/2.5\r
+[[NyARToolkit/2.5]]\r
\r
NyARToolkitは、Pure Javaで実装したARToolKitクラスライブラリです。\r
+ARToolKit 2.72.1をベースに作られています。\r
\r
-ARToolKit 2.72.1をベースに構築されています。\r
\r
-J2SEでのみ動作を確認しました。\r
-J2MEやMIDP2.0にはそのうち対応します。\r
+※ARToolkitは加藤博一先生とHuman Interface Technology Labにより\r
+ 開発されたAugmented Reality (AR) ライブラリです。\r
+ 詳しくは、下記URLをご覧ください。\r
+ http://www.hitl.washington.edu/artoolkit/\r
\r
\r
-ARToolkitは加藤博一先生とHuman Interface Technology Labにより\r
-開発されたAugmented Reality (AR) ライブラリです。\r
-詳しくはこちらをご覧下さい。\r
-http://www.hitl.washington.edu/artoolkit/\r
+[[NyARToolkitの特徴]]\r
\r
+ -ARToolKitと同等な機能を、クラスベースAPIで提供します。\r
+ -計算器チューニングにより、ARToolKitと比較して、処理性能が\r
+ 向上しています。より高い性能を持つNyARToolkit最適化モード\r
+ と、ARToolKitと互換性のある互換モードを搭載しています。\r
\r
-・NyARToolkitの特徴\r
-\r
- -ARToolKitと同等な処理シーケンスを、クラスベースで再構築しています。\r
-\r
- -ARToolKitと比較して、処理構造が最適化されています。\r
-\r
- -ARToolKit互換モードと、NyARToolkit最適化モードを搭載しています。(Version/2.4.0より)\r
- \r
--NyARToolkit最適化モード\r
いくつかのアルゴリズムをARToolKitのものと差換え、高速化・精度の向上を図ります。\r
- ARToolKit比で、約2倍高速です。(JIT有効時)複数マーカー取り扱い時は、\r
- 更に高速になります。ただし、計算結果はARToolKitのそれと若干ズレがでます。\r
+ ARToolKit比で、約2倍の性能があります。(JIT有効時)\r
+ ただし、計算結果はARToolKitのそれと若干ズレがでます。\r
\r
--ARToolKit互換モード\r
ARToolKitのアルゴリズムを最適化し、高速化を図ります。\r
- ARToolKit比で、約1倍高速です。(JIT有効時)\r
+ ARToolKitとほぼ同等の処理性能です。(JIT有効時)\r
\r
- -å\8f\96ã\82\8aæ\89±ã\81\88ã\82\8bç\94»å\83\8fã\82µã\82¤ã\82ºã\81«å\88¶é\99\90ã\81\8cã\81\82ã\82\8aã\81¾ã\81\9bã\82\93。\r
+ -å\8f\96ã\82\8aæ\89±ã\81\88ã\82\8bç\94»å\83\8fã\82µã\82¤ã\82ºã\81«å\88¶é\99\90ã\81\8cã\81ªã\81\8fã\80\81é\9d\99æ¢ç\94»ã\82\82æ\89±ã\81\88ã\81¾ã\81\99。\r
-取り扱えるマーカー個数の最大値が可変です。\r
- -Idマーカシステム(NyId)が利用できます。(Version/2.3.0より)\r
+ -Idマーカシステム(NyId)が利用できます。\r
\r
\r
\r
+[[構成]]\r
\r
+NyARToolkitは、環境に依存しない計算部分の"NyARToolkit"\r
+と、カメラ/3Dレンダラに接続するための、インタフェイス\r
+クラスモジュールで作られています。\r
\r
\r
-・構成\r
\r
+-----------------------------------------------+\r
| Application |\r
------------------------------------+-----------+\r
\r
\r
-カメラインタフェイス\r
- 映像キャプチャにはJMF、又はQuickTimeを使用することが出来ます。\r
- NyARJMF/CaptureQTは、各カメラライブラリのラッパークラス群です。\r
- \r
-3Dレンダラインタフェイス\r
- 3D描画にはJOGL又はJava3Dを使用することが出来ます。\r
- NyARJolg/NyARJ3dは、各3dライブラリへのラッパークラス群です。\r
+-カメラインタフェイス\r
+ カメラインタフェイスは、イメージソースからリアルタイムに画像を\r
+ 取り込む為のモジュールです。\r
+ JMF(NyARJMF)、又はQuickTime(CaptureQT)が用意されています。\r
\r
-NyARToolkitコア\r
- NyARToolkitの中核部は、機能毎に細分化された部品クラスと、それらを\r
- ユースケースに合せて動作させる管理クラスに分かれています。\r
- jp.nyatla.nyartoolkit.core下にあるクラスは部品クラス、その上位に\r
- あるものは、ユースケースごとの管理クラスです。\r
+-3Dレンダラインタフェイス\r
+ 3Dレンダラインタフェイスは、3Dレンダリングシステムに、画像や、\r
+ 計算値を設定するためのモジュールです。\r
+ JOGL(NyARJolg)又はJava3D(NyARJ3d)を使用することが出来ます。\r
\r
+-NyARToolkitコア\r
+ NyARToolkitの中心的なモジュールです。数学処理、画像処理、管理機能\r
+ などが、機能毎にクラス化されています。\r
\r
\r
-・サンプルなど\r
+[[サンプルの動かし方]]\r
\r
-1.動作させる前に、JMFとJOGLかJava3Dをインストールしてください。\r
+1.動作させる前に、JMFとJOGLかJava3Dをインストールしてください。\r
QuickTimeを使う場合には、QuickTime for Javaも必要です。\r
\r
\r
\r
\r
\r
-2.eclipseで空のワークスペースを作成し、sample,src,src.utils\r
+2.eclipseで空のワークスペースを作成し、sample,src,src.utils\r
ディレクトリをインポートしてください。\r
+ 各ディレクトリの説明については、\r
\r
-srcディレクトリには、NyARToolkit本体(計算クラス群)があります。\r
-src.utilsディレクトリには、カメラキャプチャクラスや、3Dライブラリ\r
-用のラッパークラス群があります。\r
-sampleディレクトリには、NyARToolkitを使用したサンプルプログラムがあります。\r
+-ディレクトリの説明\r
+ --srcディレクトリには、NyARToolkitコアモジュールを配置してあります。\r
+ --src.utilsディレクトリには、カメラキャプチャクラスや、3Dライブラリ\r
+ 用のラッパークラス等の、インタフェイスモジュールが配置してあります。\r
+ があります。\r
+ --sampleディレクトリには、NyARToolkitを使用したサンプルプログラムがあります。\r
\r
\r
-・プロジェクトの説明\r
+[[プロジェクトの説明]]\r
\r
-ライブラリ\r
+[[[ライブラリ]]]\r
\r
-NyARToolkit\r
+-NyARToolkit\r
NyARToolkitライブラリの本体です。依存する外部モジュールはありません。\r
\r
-NyARToolkit.utils.jmf\r
+-NyARToolkit.utils.jmf\r
+ JMF用のインタフェイスモジュールです。\r
JMFからの画像をNyARToolkitに取り込むクラス群があります。\r
外部ライブラリは、JMFに依存します。\r
\r
-NyARToolkit.utils.qt\r
+-NyARToolkit.utils.qt\r
+ QuickTime用のインタフェイスモジュールです。\r
QuickTimeからの画像をNyARToolkitに取り込むクラス群があります。\r
外部ライブラリは、JMF、QuickTime for Javaに依存します。\r
\r
-NyARToolkit.utils.jogl\r
+-NyARToolkit.utils.jogl\r
+ OpenGL用のインタフェイスモジュールです。\r
OpenGLとNyARToolkitのインタフェイスクラス群があります。\r
外部ライブラリは、JMF,JOGLに依存します。\r
\r
-NyARToolkit.utils.java3d\r
+-NyARToolkit.utils.java3d\r
+ Java3D用のインタフェイスモジュールです。\r
Java3DとNyARToolkitのインタフェイスクラス群があります。\r
外部ライブラリは、JMF,Java3Dに依存します。\r
\r
\r
-サンプル\r
+[[[サンプル]]]\r
\r
NyARToolkit.sample.jogl\r
JOGL/JMFを使ったサンプルプログラムがあります。\r
\r
\r
NyARToolkit.sample.java3d\r
- JOGL/JMFを使ったサンプルプログラムです。\r
+ JAVA3D/JMFを使ったサンプルプログラムです。\r
\r
-jp.nyatla.nyartoolkit.java3d.sample\r
simpleLiteをJava3Dで動かすサンプルがあります。\r
JMFを使ったサンプルプログラムです。\r
\r
-jp.nyatla..nyartoolkit.jmf.sample\r
- JMFでキャプチャした画像をNyARToolkitで処理するサンプルプログラムです。\r
+ JMFでキャプチャした画像をNyARToolkitで処理するサンプルプログラムです。\r
+\r
\r
NyARToolkit.sample.qt\r
Quicktime for Javaを使ったサンプルプログラムです。\r
\r
-jp.nyatla.nyartoolkit.qt.sample\r
- QuickTimeでキャプチャした画像をNyARToolkitで処理するサンプルプログラムです。\r
+ QuickTimeでキャプチャした画像をNyARToolkitで処理するサンプルプログラムです。\r
\r
\r
NyARToolkit.sandbox\r
\r
\r
\r
-・足りない機能等\r
+[[足りない機能等]]\r
\r
カメラキャリブレーション、マーカーのセーブ機能等が相変わらずありません。\r
今後実装していきます。\r
\r
\r
\r
-・ライセンス\r
+[[ライセンス]]\r
\r
NyARToolkitは、商用ライセンスとGPLv3以降のデュアルライセンスを採用しています。\r
-(Version/2.4.0ã\82\88ã\82\8aã\80\81GPLv3ã\83©ã\82¤ã\82»ã\83³ã\82¹ã\81«ã\81ªã\82\8aã\81¾ã\81\97ã\81\9fã\80\82)\r
+(Version/2.4.0より、GPLv3になりました。)\r
\r
- -GPL\r
- GPLについては、LICENCE.txtをお読みください。\r
+ -GPLv3\r
+ GPLv3については、LICENCE.txtをお読みください。\r
\r
-商用ライセンス\r
商用ライセンスについては、ARToolWorks社に管理を委託しております。\r
http://www.artoolworks.com/Home.html\r
\r
- 日本国内での販売については、下記にお問い合わせ下さい。\r
+ -日本国内での販売については、下記にお問い合わせ下さい。\r
http://www.msoft.co.jp/pressrelease/press090928-1.html\r
\r
\r
--- /dev/null
+package jp.nyatla.nyartoolkit.dev;\r
+\r
+import java.awt.Color;\r
+import java.awt.Frame;\r
+import java.awt.Graphics;\r
+import java.awt.Image;\r
+import java.awt.Insets;\r
+\r
+import javax.imageio.ImageIO;\r
+import javax.media.Buffer;\r
+import javax.media.format.VideoFormat;\r
+import javax.media.util.BufferToImage;\r
+\r
+import java.awt.color.ColorSpace;\r
+import java.awt.image.*;\r
+import java.io.File;\r
+import java.io.FileInputStream;\r
+import java.util.Date;\r
+\r
+import jp.nyatla.nyartoolkit.NyARException;\r
+import jp.nyatla.nyartoolkit.jmf.utils.*;\r
+import jp.nyatla.nyartoolkit.detector.*;\r
+import jp.nyatla.nyartoolkit.nyidmarker.NyIdMarkerPickup;\r
+import jp.nyatla.nyartoolkit.core.transmat.*;\r
+import jp.nyatla.nyartoolkit.core.*;\r
+import jp.nyatla.nyartoolkit.core.param.*;\r
+import jp.nyatla.nyartoolkit.core.pickup.*;\r
+import jp.nyatla.nyartoolkit.core.raster.*;\r
+import jp.nyatla.nyartoolkit.core.types.*;\r
+import jp.nyatla.nyartoolkit.core.raster.rgb.*;\r
+import jp.nyatla.nyartoolkit.core.rasterfilter.gs2bin.*;\r
+import jp.nyatla.nyartoolkit.core.rasterfilter.rgb2bin.*;\r
+import jp.nyatla.nyartoolkit.nyidmarker.*;\r
+import jp.nyatla.nyartoolkit.sample.RawFileTest;\r
+import jp.nyatla.nyartoolkit.utils.j2se.*;\r
+import jp.nyatla.nyartoolkit.core.squaredetect.*;\r
+import jp.nyatla.nyartoolkit.core.pickup.*;\r
+\r
+\r
+public class PattPickupTestS extends Frame\r
+{\r
+ private final String code_file = "../Data/flarlogo.pat";\r
+\r
+ private final static String SAMPLE_FILES = "../Data/flarlogo_45.png";\r
+\r
+ private final String camera_file = "../Data/camera_para.dat";\r
+\r
+\r
+\r
+ public void Test_arDetectMarkerLite() throws Exception\r
+ {\r
+ // AR用カメラパラメタファイルをロード\r
+ NyARParam ap = new NyARParam();\r
+ ap.loadARParamFromFile(camera_file);\r
+\r
+\r
+ // AR用のパターンコードを読み出し\r
+ NyARCode code = new NyARCode(16, 16);\r
+ code.loadARPattFromFile(code_file);\r
+\r
+ // 試験イメージの読み出し(320x240 BGRAのRAWデータ)\r
+ BufferedImage src_image = ImageIO.read(new File(SAMPLE_FILES));\r
+ INyARRgbRaster ra = new NyARRgbRaster_RGB(src_image.getWidth(),src_image.getHeight(),true);\r
+ NyARRasterImageIO.copy(src_image, ra);\r
+ \r
+ \r
+ // NyARToolkitの準備\r
+ ap.changeScreenSize(src_image.getWidth(),src_image.getHeight());\r
+\r
+\r
+ // Blank_Raster ra=new Blank_Raster(320, 240);\r
+\r
+ // 1パターンのみを追跡するクラスを作成\r
+ NyARSingleDetectMarker ar = new NyARSingleDetectMarker(\r
+ ap, code, 80.0,ra.getBufferType(),NyARSingleDetectMarker.PF_NYARTOOLKIT);\r
+ NyARTransMatResult result_mat = new NyARTransMatResult();\r
+ ar.setContinueMode(false);\r
+ ar.detectMarkerLite(ra, 100);\r
+ ar.getTransmationMatrix(result_mat);\r
+\r
+ NyARDoublePoint3d ang=new NyARDoublePoint3d();\r
+ result_mat.getZXYAngle(ang);\r
+ NyARRasterImageIO.copy(((INyARColorPatt)(ar._getProbe()[0])),b);\r
+ \r
+ }\r
+ BufferedImage b=new BufferedImage(16,16,ColorSpace.TYPE_RGB);\r
+\r
+ public void drawImage(){\r
+ Graphics g=this.getGraphics();\r
+ g.drawImage(b,50,50,100,100,null);\r
+ }; \r
+ public static void main(String[] args)\r
+ {\r
+ try {\r
+ PattPickupTestS app = new PattPickupTestS();\r
+ app.setVisible(true);\r
+ app.setBounds(0, 0, 640, 480);\r
+ app.Test_arDetectMarkerLite();\r
+ app.drawImage();\r
+ } catch (Exception e) {\r
+ e.printStackTrace();\r
+ }\r
+ }\r
+}\r