OSDN Git Service

[update]NyARToolKit
authornyatla <nyatla@7cac0a50-4618-4814-88d0-24b83990f816>
Sat, 24 Apr 2010 17:33:55 +0000 (17:33 +0000)
committernyatla <nyatla@7cac0a50-4618-4814-88d0-24b83990f816>
Sat, 24 Apr 2010 17:33:55 +0000 (17:33 +0000)
+デバック関数を追加した。
+2.5.2候補

git-svn-id: http://svn.sourceforge.jp/svnroot/nyartoolkit/NyARToolkit@442 7cac0a50-4618-4814-88d0-24b83990f816

trunk/readme.ja.txt
trunk/src/jp/nyatla/nyartoolkit/detector/NyARCustomSingleDetectMarker.java
trunk/test/jp/nyatla/nyartoolkit/dev/PattPickupTestS.java [new file with mode: 0644]

index 07d1b07..8b51150 100644 (file)
@@ -1,7 +1,7 @@
 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
@@ -11,49 +11,47 @@ wm(at)nyatla.jp
 \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
@@ -66,25 +64,24 @@ http://www.hitl.washington.edu/artoolkit/
 ------------------------------------+-----------+\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
@@ -104,40 +101,47 @@ http://www.apple.com/quicktime/qtjava/
 \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
@@ -153,7 +157,7 @@ NyARToolkit.sample.jogl
 \r
 \r
 NyARToolkit.sample.java3d\r
- JOGL/JMFを使ったサンプルプログラムです。\r
+ JAVA3D/JMFを使ったサンプルプログラムです。\r
 \r
   -jp.nyatla.nyartoolkit.java3d.sample\r
    simpleLiteをJava3Dで動かすサンプルがあります。\r
@@ -162,13 +166,14 @@ NyARToolkit.sample.jmf
   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
@@ -177,7 +182,7 @@ NyARToolkit.sandbox
 \r
 \r
 \r
-・足りない機能等\r
+[[足りない機能等]]\r
 \r
 カメラキャリブレーション、マーカーのセーブ機能等が相変わらずありません。\r
 今後実装していきます。\r
@@ -185,19 +190,19 @@ NyARToolkit.sandbox
 \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
index 3c8707c..27fe509 100644 (file)
@@ -250,7 +250,16 @@ public class NyARCustomSingleDetectMarker
        {\r
                this._is_continue = i_is_continue;\r
        }\r
-       \r
+       /**\r
+        * プローブ関数\r
+        * @return\r
+        */\r
+       public Object[] _getProbe()\r
+       {\r
+               Object[] r=new Object[1];\r
+               r[0]=this._detect_cb._inst_patt;\r
+               return r;\r
+       }       \r
        \r
        \r
        \r
diff --git a/trunk/test/jp/nyatla/nyartoolkit/dev/PattPickupTestS.java b/trunk/test/jp/nyatla/nyartoolkit/dev/PattPickupTestS.java
new file mode 100644 (file)
index 0000000..53b56a9
--- /dev/null
@@ -0,0 +1,104 @@
+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