OSDN Git Service

[更新]NyARToolkit/nyatlaブランチ-2.0.0候補
authornyatla <nyatla@7cac0a50-4618-4814-88d0-24b83990f816>
Sun, 14 Sep 2008 13:59:54 +0000 (13:59 +0000)
committernyatla <nyatla@7cac0a50-4618-4814-88d0-24b83990f816>
Sun, 14 Sep 2008 13:59:54 +0000 (13:59 +0000)
23 files changed:
readme.ja.txt
sample/java3d/jp/nyatla/nyartoolkit/java3d/sample/NyARJava3D.java
sample/jmf/jp/nyatla/nyartoolkit/jmf/sample/NyarToolkitLinkTest.java
sample/jogl/jp/nyatla/nyartoolkit/jogl/sample/JavaSimpleLite.java
sample/jogl/jp/nyatla/nyartoolkit/jogl/sample/JavaSimpleLite2.java
sample/qt/jp/nyatla/nyartoolkit/qt/sample/NyarToolkitLinkTest.java
src/jp/nyatla/nyartoolkit/core/INyARSquareDetector.java
src/jp/nyatla/nyartoolkit/core/NyARCode.java
src/jp/nyatla/nyartoolkit/core/NyARMat.java
src/jp/nyatla/nyartoolkit/core/labeling/NyARLabelingImage.java
src/jp/nyatla/nyartoolkit/core/param/NyARParam.java
src/jp/nyatla/nyartoolkit/core/pickup/NyARColorPatt_O3.java
src/jp/nyatla/nyartoolkit/core/raster/rgb/NyARRgbRaster_BGRA.java
src/jp/nyatla/nyartoolkit/core/raster/rgb/NyARRgbRaster_Blank.java
src/jp/nyatla/nyartoolkit/core/rasterreader/INyARRgbPixelReader.java
src/jp/nyatla/nyartoolkit/core/rasterreader/NyARRgbPixelReader_RGB24.java
src/jp/nyatla/nyartoolkit/core/transmat/NyARTransMat.java
src/jp/nyatla/nyartoolkit/core/transmat/NyARTransOffset.java
src/jp/nyatla/nyartoolkit/core/transmat/optimize/NyARRotTransOptimize.java
src/jp/nyatla/nyartoolkit/core2/rasteranalyzer/NyARRasterDetector_QrCodeEdge.java
src/jp/nyatla/nyartoolkit/sample/RawFileTest.java
test/jp/nyatla/nyartoolkit/dev/LabelingCamera.java
test/jp/nyatla/nyartoolkit/dev/LabelingTest.java

index 0d4e9e2..8c369da 100644 (file)
@@ -1,21 +1,24 @@
-ARToolkit Java class library NyARToolkit.\r
+ARToolKit Java class library NyARToolkit.\r
 Copyright (C)2008 R.Iizuka\r
 \r
-version 1.3.0.\r
+version 2.0.0\r
 \r
-http://nyatla.jp/\r
+http://nyatla.jp/nyartoolkit/\r
 airmail(at)ebony.plala.or.jp\r
 --------------------------------------------------\r
 \r
 \r
 \r
 \r
-・NyARToolkit\r
+・NyARToolkit/2.0\r
+\r
+NyARToolkitは、Pure Javaで実装したARToolKitクラスライブラリです。\r
+\r
+ARToolKit 2.72.1をベースに構築されています。\r
+\r
+NyARToolkit/1.xと比較し、構造的な最適化がされ、可読性が向上しています。\r
 \r
-NyARToolkitは、nativeなコードを一切使用しない、Pure Javaのみで\r
-構成されたARToolkitクラスライブラリです。\r
 \r
-ARToolkit 2.72.1をベースに構築されています。\r
 \r
 J2SEでのみ動作を確認しました。\r
 J2MEやMIDP2.0にはそのうち対応します。\r
@@ -29,7 +32,9 @@ http://www.hitl.washington.edu/artoolkit/
 \r
 ・NyARToolkitの特徴\r
 \r
- -ARToolKitの処理関数を全てクラスベースで再構築してあります。\r
+ -ARToolKitと同等な処理シーケンスを、クラスベースで再構築してあります。\r
+\r
+  -構造的な最適化がされており、ARToolKitと比較して可読性に優れています。\r
 \r
  -座標変換の演算性能が1.5倍ほど高速です。(JIT有効時)複数マーカー取り扱い時は、\r
   オリジナルよりも良い成績が得られます。\r
@@ -41,6 +46,8 @@ http://www.hitl.washington.edu/artoolkit/
 \r
 \r
 \r
+\r
+\r
 ・構成\r
 \r
 +-----------------------------------------------+\r
@@ -160,7 +167,7 @@ NyARToolkit.sample.qt
 \r
 ・足りない機能等\r
 \r
-カメラキャリブレーション、マーカーのセーブ機能等がありません。\r
+カメラキャリブレーション、マーカーのセーブ機能等が相変わらずありません。\r
 今後実装していきます。\r
 \r
 \r
@@ -168,6 +175,7 @@ NyARToolkit.sample.qt
 \r
 ・ライセンス\r
 GPLv2以降です。詳しくはLICENCE.txtをみてください。\r
+ソースコード毎のライセンスは、各ソースファイルを参照してください。\r
 \r
 \r
 \r
index 1a83d27..a1786c2 100644 (file)
@@ -97,7 +97,7 @@ public class NyARJava3D extends JFrame implements NyARSingleMarkerBehaviorListen
 \r
                //NyARToolkitの準備\r
                NyARCode ar_code = new NyARCode(16, 16);\r
-               ar_code.loadFromARFile(CARCODE_FILE);\r
+               ar_code.loadARPattFromFile(CARCODE_FILE);\r
                ar_param = new J3dNyARParam();\r
                ar_param.loadARParamFromFile(PARAM_FILE);\r
                ar_param.changeScreenSize(320, 240);\r
index 5afdb28..6a1984a 100644 (file)
@@ -73,7 +73,7 @@ public class NyarToolkitLinkTest extends Frame implements JmfCaptureListener
                ar_param.loadARParamFromFile(PARAM_FILE);
                ar_param.changeScreenSize(320, 240);
                nya = new NyARSingleDetectMarker(ar_param, ar_code, 80.0);
-               ar_code.loadFromARFile(CARCODE_FILE);
+               ar_code.loadARPattFromFile(CARCODE_FILE);
                //キャプチャイメージ用のラスタを準備
                raster = new JmfNyARRaster_RGB(320, 240);
        }
index 90820f1..970c0ec 100644 (file)
@@ -156,7 +156,7 @@ public class JavaSimpleLite implements GLEventListener, JmfCaptureListener
                        _ar_param.changeScreenSize(SCREEN_X, SCREEN_Y);\r
                        _nya = new GLNyARSingleDetectMarker(_ar_param, ar_code, 80.0);\r
                        _nya.setContinueMode(false);//ここをtrueにすると、transMatContinueモード(History計算)になります。\r
-                       ar_code.loadFromARFile(CARCODE_FILE);\r
+                       ar_code.loadARPattFromFile(CARCODE_FILE);\r
                        //NyARToolkit用の支援クラス\r
                        _glnya = new NyARGLUtil(_gl);\r
                        //GL対応のRGBラスタオブジェクト\r
index d756222..8748b45 100644 (file)
@@ -160,9 +160,9 @@ public class JavaSimpleLite2 implements GLEventListener, JmfCaptureListener
                        double[] width = new double[] { 80.0, 80.0 };\r
                        NyARCode[] ar_codes = new NyARCode[2];\r
                        ar_codes[0] = new NyARCode(16, 16);\r
-                       ar_codes[0].loadFromARFile(CARCODE_FILE1);\r
+                       ar_codes[0].loadARPattFromFile(CARCODE_FILE1);\r
                        ar_codes[1] = new NyARCode(16, 16);\r
-                       ar_codes[1].loadFromARFile(CARCODE_FILE2);\r
+                       ar_codes[1].loadARPattFromFile(CARCODE_FILE2);\r
                        _nya = new GLNyARDetectMarker(_ar_param, ar_codes, width, 2);\r
                        _nya.setContinueMode(false);//ここをtrueにすると、transMatContinueモード(History計算)になります。\r
                        //NyARToolkit用の支援クラス\r
index aa6870d..79489c5 100644 (file)
@@ -67,7 +67,7 @@ public class NyarToolkitLinkTest extends Frame implements QtCaptureListener
                ar_param.loadARParamFromFile(PARAM_FILE);
                ar_param.changeScreenSize(320, 240);
                nya = new NyARSingleDetectMarker(ar_param, ar_code, 80.0);
-               ar_code.loadFromARFile(CARCODE_FILE);
+               ar_code.loadARPattFromFile(CARCODE_FILE);
                //キャプチャイメージ用のラスタを準備
                raster = new QtNyARRaster_RGB(320, 240);
        }
index f46c128..08d73b2 100644 (file)
@@ -1,3 +1,34 @@
+/* \r
+ * PROJECT: NyARToolkit\r
+ * --------------------------------------------------------------------------------\r
+ * This work is based on the original ARToolKit developed by\r
+ *   Hirokazu Kato\r
+ *   Mark Billinghurst\r
+ *   HITLab, University of Washington, Seattle\r
+ * http://www.hitl.washington.edu/artoolkit/\r
+ *\r
+ * The NyARToolkit is Java version ARToolkit class library.\r
+ * Copyright (C)2008 R.Iizuka\r
+ *\r
+ * This program is free software; you can redistribute it and/or\r
+ * modify it under the terms of the GNU General Public License\r
+ * as published by the Free Software Foundation; either version 2\r
+ * of the License, or (at your option) any later version.\r
+ * \r
+ * This program is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ * \r
+ * You should have received a copy of the GNU General Public License\r
+ * along with this framework; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
+ * \r
+ * For further information please contact.\r
+ *     http://nyatla.jp/nyatoolkit/\r
+ *     <airmail(at)ebony.plala.or.jp>\r
+ * \r
+ */\r
 package jp.nyatla.nyartoolkit.core;\r
 \r
 import jp.nyatla.nyartoolkit.NyARException;\r
index 755c451..886b716 100644 (file)
@@ -49,14 +49,11 @@ public class NyARCode
        private int[][][][] pat;// static int\r
                                                        // pat[AR_PATT_NUM_MAX][4][AR_PATT_SIZE_Y*AR_PATT_SIZE_X*3];\r
 \r
-       private double[] patpow = new double[4];// static double\r
-                                                                                       // patpow[AR_PATT_NUM_MAX][4];\r
+       private double[] patpow = new double[4];// static double patpow[AR_PATT_NUM_MAX][4];\r
 \r
-       private short[][][] patBW;// static int\r
-                                                               // patBW[AR_PATT_NUM_MAX][4][AR_PATT_SIZE_Y*AR_PATT_SIZE_X*3];\r
+       private short[][][] patBW;// static int patBW[AR_PATT_NUM_MAX][4][AR_PATT_SIZE_Y*AR_PATT_SIZE_X*3];\r
 \r
-       private double[] patpowBW = new double[4];// static double\r
-                                                                                               // patpowBW[AR_PATT_NUM_MAX][4];\r
+       private double[] patpowBW = new double[4];// static double patpowBW[AR_PATT_NUM_MAX][4];\r
 \r
        private int width, height;\r
 \r
@@ -94,10 +91,8 @@ public class NyARCode
        {\r
                width = i_width;\r
                height = i_height;\r
-               pat = new int[4][height][width][3];// static int\r
-                                                                                       // pat[AR_PATT_NUM_MAX][4][AR_PATT_SIZE_Y*AR_PATT_SIZE_X*3];\r
-               patBW = new short[4][height][width];// static int\r
-                                                                                       // patBW[AR_PATT_NUM_MAX][4][AR_PATT_SIZE_Y*AR_PATT_SIZE_X*3];\r
+               pat = new int[4][height][width][3];// static int pat[AR_PATT_NUM_MAX][4][AR_PATT_SIZE_Y*AR_PATT_SIZE_X*3];\r
+               patBW = new short[4][height][width];// static int patBW[AR_PATT_NUM_MAX][4][AR_PATT_SIZE_Y*AR_PATT_SIZE_X*3];\r
        }\r
 \r
        /**\r
@@ -108,10 +103,10 @@ public class NyARCode
         * @return\r
         * @throws Exception\r
         */\r
-       public void loadFromARFile(String filename) throws NyARException\r
+       public void loadARPattFromFile(String filename) throws NyARException\r
        {\r
                try {\r
-                       loadFromARFile(new FileInputStream(filename));\r
+                       loadARPatt(new FileInputStream(filename));\r
 \r
                } catch (Exception e) {\r
                        throw new NyARException(e);\r
@@ -123,7 +118,7 @@ public class NyARCode
         * @param i_stream\r
         * @throws NyARException\r
         */\r
-       public void loadFromARFile(InputStream i_stream) throws NyARException\r
+       public void loadARPatt(InputStream i_stream) throws NyARException\r
        {\r
                try {\r
                        StreamTokenizer st = new StreamTokenizer(new InputStreamReader(\r
@@ -135,8 +130,7 @@ public class NyARCode
                                        for (int i2 = 0; i2 < height; i2++) {\r
                                                for (int i1 = 0; i1 < width; i1++) {\r
                                                        // 数値のみ読み出す\r
-                                                       switch (st.nextToken()) {// if( fscanf(fp, "%d",\r
-                                                                                                               // &j) != 1 ) {\r
+                                                       switch (st.nextToken()) {// if( fscanf(fp, "%d",&j) != 1 ) {\r
                                                        case StreamTokenizer.TT_NUMBER:\r
                                                                break;\r
                                                        default:\r
@@ -147,29 +141,22 @@ public class NyARCode
                                                        switch (i3) {\r
                                                        case 0:\r
                                                                pat[h][i2][i1][2] = j;\r
-                                                               break;// pat[patno][h][(i2*Config.AR_PATT_SIZE_X+i1)*3+2]\r
-                                                                               // = j;break;\r
+                                                               break;// pat[patno][h][(i2*Config.AR_PATT_SIZE_X+i1)*3+2]= j;break;\r
                                                        case 1:\r
                                                                pat[h][i2][i1][1] = j;\r
-                                                               break;// pat[patno][h][(i2*Config.AR_PATT_SIZE_X+i1)*3+1]\r
-                                                                               // = j;break;\r
+                                                               break;// pat[patno][h][(i2*Config.AR_PATT_SIZE_X+i1)*3+1]= j;break;\r
                                                        case 2:\r
                                                                pat[h][i2][i1][0] = j;\r
-                                                               break;// pat[patno][h][(i2*Config.AR_PATT_SIZE_X+i1)*3+0]\r
-                                                                               // = j;break;\r
+                                                               break;// pat[patno][h][(i2*Config.AR_PATT_SIZE_X+i1)*3+0]= j;break;\r
                                                        }\r
-                                                       // pat[patno][h][(i2*Config.AR_PATT_SIZE_X+i1)*3+i3]\r
-                                                       // = j;\r
+                                                       // pat[patno][h][(i2*Config.AR_PATT_SIZE_X+i1)*3+i3]= j;\r
                                                        if (i3 == 0) {\r
-                                                               patBW[h][i2][i1] = j;// patBW[patno][h][i2*Config.AR_PATT_SIZE_X+i1]\r
-                                                                                                               // = j;\r
+                                                               patBW[h][i2][i1] = j;// patBW[patno][h][i2*Config.AR_PATT_SIZE_X+i1] = j;\r
                                                        } else {\r
-                                                               patBW[h][i2][i1] += j;// patBW[patno][h][i2*Config.AR_PATT_SIZE_X+i1]\r
-                                                                                                               // += j;\r
+                                                               patBW[h][i2][i1] += j;// patBW[patno][h][i2*Config.AR_PATT_SIZE_X+i1] += j;\r
                                                        }\r
                                                        if (i3 == 2) {\r
-                                                               patBW[h][i2][i1] /= 3;// patBW[patno][h][i2*Config.AR_PATT_SIZE_X+i1]\r
-                                                                                                               // /= 3;\r
+                                                               patBW[h][i2][i1] /= 3;// patBW[patno][h][i2*Config.AR_PATT_SIZE_X+i1]/= 3;\r
                                                        }\r
                                                        l += j;\r
                                                }\r
@@ -179,9 +166,7 @@ public class NyARCode
                                l /= (height * width * 3);\r
 \r
                                int m = 0;\r
-                               for (int i = 0; i < height; i++) {// for( i = 0; i <\r
-                                                                                                       // AR_PATT_SIZE_Y*AR_PATT_SIZE_X*3;\r
-                                                                                                       // i++ ) {\r
+                               for (int i = 0; i < height; i++) {// for( i = 0; i < AR_PATT_SIZE_Y*AR_PATT_SIZE_X*3;i++ ) {\r
                                        for (int i2 = 0; i2 < width; i2++) {\r
                                                for (int i3 = 0; i3 < 3; i3++) {\r
                                                        pat[h][i][i2][i3] -= l;\r
index c28d0d6..28314f5 100644 (file)
@@ -156,9 +156,7 @@ public class NyARMat
                        for (c = 0; c < this.clm; c++) {\r
                                w = 0.0;// dest.setARELEM0(r, c,0.0);\r
                                for (i = 0; i < a.clm; i++) {\r
-                                       w += am[r][i] * bm[i][c];// ARELEM0(dest, r, c) +=\r
-                                                                                               // ARELEM0(a, r, i) * ARELEM0(b,\r
-                                                                                               // i, c);\r
+                                       w += am[r][i] * bm[i][c];// ARELEM0(dest, r, c) +=ARELEM0(a, r, i) * ARELEM0(b,i, c);\r
                                }\r
                                dm[r][c] = w;\r
                        }\r
@@ -281,8 +279,7 @@ public class NyARMat
         * @param source\r
         * @return\r
         */\r
-       public static void matrixTrans(NyARMat dest, NyARMat source)\r
-                       throws NyARException\r
+       public static void matrixTrans(NyARMat dest, NyARMat source) throws NyARException\r
        {\r
                if (dest.row != source.clm || dest.clm != source.row) {\r
                        throw new NyARException();\r
@@ -411,31 +408,23 @@ public class NyARMat
        public int matrixDisp() throws NyARException\r
        {\r
                NyARException.trap("未チェックのパス");\r
-               System.out.println(" === matrix (" + row + "," + clm + ") ===");// printf("\r
-                                                                                                                                               // ===\r
-                                                                                                                                               // matrix\r
-                                                                                                                                               // (%d,%d)\r
-                                                                                                                                               // ===\n",\r
-                                                                                                                                               // m->row,\r
-                                                                                                                                               // m->clm);\r
+               System.out.println(" === matrix (" + row + "," + clm + ") ===");// printf(" ===matrix (%d,%d) ===\n", m->row, m->clm);\r
                for (int r = 0; r < row; r++) {// for(int r = 0; r < m->row; r++) {\r
                        System.out.print(" |");// printf(" |");\r
                        for (int c = 0; c < clm; c++) {// for(int c = 0; c < m->clm; c++) {\r
-                               System.out.print(" " + m[r][c]);// printf(" %10g", ARELEM0(m, r,\r
-                                                                                               // c));\r
+                               System.out.print(" " + m[r][c]);// printf(" %10g", ARELEM0(m, r, c));\r
                        }\r
                        System.out.println(" |");// printf(" |\n");\r
                }\r
-               System.out.println(" ======================");// printf("\r
-                                                                                                               // ======================\n");\r
+               System.out.println(" ======================");// printf(" ======================\n");\r
                return 0;\r
        }\r
 \r
-       private final static double PCA_EPS = 1e-6; // #define EPS 1e-6\r
+       private static final double PCA_EPS = 1e-6; // #define EPS 1e-6\r
 \r
-       private final static int PCA_MAX_ITER = 100; // #define MAX_ITER 100\r
+       private static final int PCA_MAX_ITER = 100; // #define MAX_ITER 100\r
 \r
-       private final static double PCA_VZERO = 1e-16; // #define VZERO 1e-16\r
+       private static final double PCA_VZERO = 1e-16; // #define VZERO 1e-16\r
 \r
        /**\r
         * static int EX( ARMat *input, ARVec *mean )の代替関数 Optimize:STEP:[144->110]\r
@@ -451,7 +440,7 @@ public class NyARMat
                int i, i2;\r
                lrow = this.row;\r
                lclm = this.clm;\r
-               double lm[][] = this.m;\r
+               double[][] lm = this.m;\r
 \r
                if (lrow <= 0 || lclm <= 0) {\r
                        throw new NyARException();\r
@@ -520,6 +509,7 @@ public class NyARMat
                                        im_i[j] -= v[j];\r
                                }\r
                        }\r
+                       break;\r
                }\r
                return;\r
        }\r
@@ -531,8 +521,7 @@ public class NyARMat
         * @param output\r
         * @throws NyARException\r
         */\r
-       private static void PCA_x_by_xt(NyARMat input, NyARMat output)\r
-                       throws NyARException\r
+       private static void PCA_x_by_xt(NyARMat input, NyARMat output) throws NyARException\r
        {\r
                NyARException.trap("動作未チェック/配列化未チェック");\r
                int row, clm;\r
@@ -556,10 +545,8 @@ public class NyARMat
                                                                                                        // output->m[j*row+i];\r
                                } else {\r
                                        NyARException.trap("未チェックのパス");\r
-                                       in1 = input.m[i];// input.getRowArray(i);//in1 =\r
-                                                                               // &(input->m[clm*i]);\r
-                                       in2 = input.m[j];// input.getRowArray(j);//in2 =\r
-                                                                               // &(input->m[clm*j]);\r
+                                       in1 = input.m[i];// input.getRowArray(i);//in1 = &(input->m[clm*i]);\r
+                                       in2 = input.m[j];// input.getRowArray(j);//in2 = &(input->m[clm*j]);\r
                                        output.m[i][j] = 0;// *out = 0.0;\r
                                        for (int k = 0; k < clm; k++) {\r
                                                output.m[i][j] += (in1[k] * in2[k]);// *out += *(in1++)\r
@@ -579,10 +566,9 @@ public class NyARMat
         * @param i_output\r
         * @throws NyARException\r
         */\r
-       private static void PCA_xt_by_x(NyARMat input, NyARMat i_output)\r
-                       throws NyARException\r
+       private static void PCA_xt_by_x(NyARMat input, NyARMat i_output) throws NyARException\r
        {\r
-               double[] in;\r
+               double[] in_;\r
                int row, clm;\r
 \r
                row = input.row;\r
@@ -601,8 +587,8 @@ public class NyARMat
                                } else {\r
                                        w = 0.0;// *out = 0.0;\r
                                        for (k = 0; k < row; k++) {\r
-                                               in = input.m[k];// in=input.getRowArray(k);\r
-                                               w += (in[i] * in[j]);// *out += *in1 * *in2;\r
+                                               in_ = input.m[k];// in=input.getRowArray(k);\r
+                                               w += (in_[i] * in_[j]);// *out += *in1 * *in2;\r
                                        }\r
                                        out_m[i][j] = w;\r
                                }\r
@@ -691,14 +677,7 @@ public class NyARMat
                                                        ev_array[k] = c * ev_array[k] - s * y;// ev->v[k]= c *ev->v[k]- s * y;\r
                                                }\r
                                        }\r
-                                       ev_array[k + 1] += s * (c * w - 2 * s * ev_array[k + 1]);// ev->v[k+1]\r
-                                                                                                                                                               // += s\r
-                                                                                                                                                               // * (c\r
-                                                                                                                                                               // * w\r
-                                                                                                                                                               // - 2\r
-                                                                                                                                                               // * s\r
-                                                                                                                                                               // *\r
-                                                                                                                                                               // ev->v[k+1]);\r
+                                       ev_array[k + 1] += s * (c * w - 2 * s * ev_array[k + 1]);// ev->v[k+1]+= s * (c* w- 2* s *ev->v[k+1]);\r
 \r
                                        for (int i = 0; i < dim; i++) {\r
                                                x = L_m[k][i];// x = a->m[k*dim+i];\r
@@ -762,8 +741,7 @@ public class NyARMat
         * @param ev\r
         * @throws NyARException\r
         */\r
-       private static void PCA_EV_create(NyARMat input, NyARMat u, NyARMat output,\r
-                       NyARVec ev) throws NyARException\r
+       private static void PCA_EV_create(NyARMat input, NyARMat u, NyARMat output,NyARVec ev) throws NyARException\r
        {\r
                NyARException.trap("未チェックのパス");\r
                int row, clm;\r
@@ -784,13 +762,13 @@ public class NyARMat
                if (ev.getClm() != row) {// if( ev->clm != row ){\r
                        throw new NyARException();\r
                }\r
-               double[][] m, in;\r
+               double[][] m, in_;\r
                double[] m1, ev_array;\r
                double sum, work;\r
 \r
                NyARException.trap("未チェックのパス");\r
                m = output.m;// m = output->m;\r
-               in = input.m;\r
+               in_ = input.m;\r
                int i;\r
                ev_array = ev.getArray();\r
                for (i = 0; i < row; i++) {\r
@@ -806,7 +784,7 @@ public class NyARMat
                                m1 = u.m[i];// m1 = &(u->m[i*row]);\r
                                // m2=input.getPointer(j);//m2 = &(input->m[j]);\r
                                for (int k = 0; k < row; k++) {\r
-                                       sum += m1[k] + in[k][j];// sum += *m1 * *m2;\r
+                                       sum += m1[k] + in_[k][j];// sum += *m1 * *m2;\r
                                        // m1.incPtr(); //m1++;\r
                                        // m2.addPtr(clm);//m2 += clm;\r
                                }\r
@@ -1019,8 +997,7 @@ public class NyARMat
                return;\r
        }\r
 \r
-       public static NyARMat matrixAllocMul(NyARMat a, NyARMat b)\r
-                       throws NyARException\r
+       public static NyARMat matrixAllocMul(NyARMat a, NyARMat b) throws NyARException\r
        {\r
                NyARException.trap("未チェックのパス");\r
                NyARMat dest = new NyARMat(a.row, b.clm);\r
@@ -1030,13 +1007,12 @@ public class NyARMat
        }\r
 \r
        /* static double mdet(double *ap, int dimen, int rowa) */\r
-       private static double Det_mdet(double[][] ap, int dimen, int rowa)\r
-                       throws NyARException\r
+       private static double Det_mdet(double[][] ap, int dimen, int rowa) throws NyARException\r
        {\r
                NyARException.trap("動作未チェック/配列化未チェック");\r
                double det = 1.0;\r
                double work;\r
-               int is = 0;\r
+               int is_ = 0;\r
                int mmax;\r
 \r
                for (int k = 0; k < dimen - 1; k++) {\r
@@ -1054,7 +1030,7 @@ public class NyARMat
                                        ap[k][j] = ap[mmax][j];// MATRIX(ap, k, j, rowa) =MATRIX(ap, mmax, j, rowa);\r
                                        ap[mmax][j] = work;// MATRIX(ap, mmax, j, rowa) = work;\r
                                }\r
-                               is++;\r
+                               is_++;\r
                        }\r
                        for (int i = k + 1; i < dimen; i++) {\r
                                work = ap[i][k] / ap[k][k];// work = arMatrixDet_MATRIX_get(ap,i, k, rowa) /arMatrixDet_MATRIX_get(ap, k, k,rowa);\r
@@ -1067,7 +1043,7 @@ public class NyARMat
                for (int i = 0; i < dimen; i++) {\r
                        det = ap[i][i];// det *= MATRIX(ap, i, i, rowa);\r
                }\r
-               for (int i = 0; i < is; i++) {\r
+               for (int i = 0; i < is_; i++) {\r
                        det *= -1.0;\r
                }\r
                return det;\r
index 78b1d44..80655ce 100644 (file)
@@ -127,7 +127,7 @@ public class NyARLabelingImage extends NyARRaster_BasicClass implements INyARLab
         * 輪郭線の長さを返します。\r
         * @throws NyARException\r
         */\r
-       public int getContour(int i_index,int i_array_size,int o_coord_x[],int o_coord_y[]) throws NyARException\r
+       public int getContour(int i_index,int i_array_size,int[] o_coord_x,int[] o_coord_y) throws NyARException\r
        {\r
                final int[] xdir = this._getContour_xdir;// static int xdir[8] = { 0,1, 1, 1, 0,-1,-1,-1};\r
                final int[] ydir = this._getContour_ydir;// static int ydir[8] = {-1,-1,0, 1, 1, 1, 0,-1};\r
index a1c62c9..4267207 100644 (file)
@@ -146,7 +146,7 @@ public class NyARParam
        public void saveARParam(OutputStream i_stream)throws Exception\r
        {\r
                NyARException.trap("未チェックの関数");\r
-               byte buf[] = new byte[SIZE_OF_PARAM_SET];\r
+               byte[] buf = new byte[SIZE_OF_PARAM_SET];\r
                // バッファをラップ\r
                ByteBuffer bb = ByteBuffer.wrap(buf);\r
                bb.order(ByteOrder.BIG_ENDIAN);\r
index 8d9b1a8..27711a1 100644 (file)
@@ -47,7 +47,7 @@ public class NyARColorPatt_O3 implements INyARColorPatt
        private static final int AR_PATT_SAMPLE_NUM = 64;// #define\r
                                                                                                                // AR_PATT_SAMPLE_NUM 64\r
 \r
-       private int extpat[][][];\r
+       private int[][][] extpat;\r
 \r
        private int width;\r
 \r
@@ -102,7 +102,7 @@ public class NyARColorPatt_O3 implements INyARColorPatt
         */\r
        private boolean get_cpara(final NyARIntPoint[] i_vertex, NyARMat o_para)throws NyARException\r
        {\r
-               int world[][] = this.wk_pickFromRaster_world;\r
+               int[][] world = this.wk_pickFromRaster_world;\r
                NyARMat a = wk_get_cpara_a;// 次処理で値を設定するので、初期化不要// new NyARMat( 8, 8 );\r
                double[][] a_array = a.getArray();\r
                NyARMat b = wk_get_cpara_b;// 次処理で値を設定するので、初期化不要// new NyARMat( 8, 1 );\r
@@ -287,7 +287,8 @@ public class NyARColorPatt_O3 implements INyARColorPatt
                /* wk_pickFromRaster_ext_pat2ワーク変数を初期化する。 */\r
                // int[][][] ext_pat2=wk_pickFromRaster_ext_pat2;//ARUint32\r
                // ext_pat2[AR_PATT_SIZE_Y][AR_PATT_SIZE_X][3];\r
-               int extpat_j[][], extpat_j_i[];\r
+               int[][] extpat_j;\r
+               int[] extpat_j_i;\r
                // int ext_pat2_j[][],ext_pat2_j_i[];\r
 \r
                initValue_wk_pickFromRaster_ext_pat2(L_extpat, L_WIDTH, L_HEIGHT);\r
index 0922cc9..995eb45 100644 (file)
@@ -47,24 +47,24 @@ public class NyARRgbRaster_BGRA extends NyARRgbRaster_BasicClass implements INyA
 \r
                public void getPixel(int i_x, int i_y, int[] o_rgb)\r
                {\r
-                       byte[] ref = this._parent._ref_buf;\r
+                       byte[] ref_buf = this._parent._ref_buf;\r
                        int bp = (i_x + i_y * this._parent._size.w) * 4;\r
-                       o_rgb[0] = (ref[bp + 2] & 0xff);// R\r
-                       o_rgb[1] = (ref[bp + 1] & 0xff);// G\r
-                       o_rgb[2] = (ref[bp + 0] & 0xff);// B\r
+                       o_rgb[0] = (ref_buf[bp + 2] & 0xff);// R\r
+                       o_rgb[1] = (ref_buf[bp + 1] & 0xff);// G\r
+                       o_rgb[2] = (ref_buf[bp + 0] & 0xff);// B\r
                        return;\r
                }\r
 \r
-               public void getPixelSet(int[] i_x, int i_y[], int i_num, int[] o_rgb)\r
+               public void getPixelSet(int[] i_x, int[] i_y, int i_num, int[] o_rgb)\r
                {\r
                        int width = _parent._size.w;\r
-                       byte[] ref = _parent._ref_buf;\r
+                       byte[] ref_buf = _parent._ref_buf;\r
                        int bp;\r
                        for (int i = i_num - 1; i >= 0; i--) {\r
                                bp = (i_x[i] + i_y[i] * width) * 4;\r
-                               o_rgb[i * 3 + 0] = (ref[bp + 2] & 0xff);// R\r
-                               o_rgb[i * 3 + 1] = (ref[bp + 1] & 0xff);// G\r
-                               o_rgb[i * 3 + 2] = (ref[bp + 0] & 0xff);// B\r
+                               o_rgb[i * 3 + 0] = (ref_buf[bp + 2] & 0xff);// R\r
+                               o_rgb[i * 3 + 1] = (ref_buf[bp + 1] & 0xff);// G\r
+                               o_rgb[i * 3 + 2] = (ref_buf[bp + 0] & 0xff);// B\r
                        }\r
                }\r
        }\r
index 466407e..d7780c4 100644 (file)
@@ -52,7 +52,7 @@ public class NyARRgbRaster_Blank extends NyARRgbRaster_BasicClass
                        return;\r
                }\r
 \r
-               public void getPixelSet(int[] i_x, int i_y[], int i_num, int[] o_rgb)\r
+               public void getPixelSet(int[] i_x, int[] i_y, int i_num, int[] o_rgb)\r
                {\r
                        for (int i = i_num - 1; i >= 0; i--) {\r
                                o_rgb[i * 3 + 0] = 0;// R\r
index 790e1a2..71b8c9c 100644 (file)
@@ -60,5 +60,5 @@ public interface INyARRgbPixelReader
         * @param i_rgb\r
         * ピクセル値を返すバッファ\r
         */\r
-       public void getPixelSet(int[] i_x, int i_y[], int i_num, int[] i_rgb) throws NyARException;\r
+       public void getPixelSet(int[] i_x, int[] i_y, int i_num, int[] i_rgb) throws NyARException;\r
 }\r
index accb57e..86d3dba 100644 (file)
@@ -51,24 +51,24 @@ public class NyARRgbPixelReader_RGB24 implements INyARRgbPixelReader
 \r
        public void getPixel(int i_x, int i_y, int[] o_rgb)\r
        {\r
-               byte[] ref = this._ref_buf;\r
+               byte[] ref_buf = this._ref_buf;\r
                int bp = (i_x + i_y * this._size.w) * 3;\r
-               o_rgb[0] = (ref[bp + 0] & 0xff);// R\r
-               o_rgb[1] = (ref[bp + 1] & 0xff);// G\r
-               o_rgb[2] = (ref[bp + 2] & 0xff);// B\r
+               o_rgb[0] = (ref_buf[bp + 0] & 0xff);// R\r
+               o_rgb[1] = (ref_buf[bp + 1] & 0xff);// G\r
+               o_rgb[2] = (ref_buf[bp + 2] & 0xff);// B\r
                return;\r
        }\r
 \r
-       public void getPixelSet(int[] i_x, int i_y[], int i_num, int[] o_rgb)\r
+       public void getPixelSet(int[] i_x, int[] i_y, int i_num, int[] o_rgb)\r
        {\r
                int width = this._size.w;\r
-               byte[] ref = this._ref_buf;\r
+               byte[] ref_buf = this._ref_buf;\r
                int bp;\r
                for (int i = i_num - 1; i >= 0; i--) {\r
                        bp = (i_x[i] + i_y[i] * width) * 3;\r
-                       o_rgb[i * 3 + 0] = (ref[bp + 0] & 0xff);// R\r
-                       o_rgb[i * 3 + 1] = (ref[bp + 1] & 0xff);// G\r
-                       o_rgb[i * 3 + 2] = (ref[bp + 2] & 0xff);// B\r
+                       o_rgb[i * 3 + 0] = (ref_buf[bp + 0] & 0xff);// R\r
+                       o_rgb[i * 3 + 1] = (ref_buf[bp + 1] & 0xff);// G\r
+                       o_rgb[i * 3 + 2] = (ref_buf[bp + 2] & 0xff);// B\r
                }\r
        }\r
 }
\ No newline at end of file
index e32aeb4..067818f 100644 (file)
@@ -98,7 +98,7 @@ public class NyARTransMat implements INyARTransMat
 \r
        private final NyARDoublePoint2d[] __transMat_sqvertex_ref = new NyARDoublePoint2d[4];\r
        private final NyARLinear[] __transMat_linear_ref=new NyARLinear[4];\r
-       final NyARDoublePoint3d __transMat_trans=new NyARDoublePoint3d();\r
+       private final NyARDoublePoint3d __transMat_trans=new NyARDoublePoint3d();\r
        /**\r
         * double arGetTransMat( ARMarkerInfo *marker_info,double center[2], double width, double conv[3][4] )\r
         * \r
index bfd80f4..bc776fb 100644 (file)
@@ -68,6 +68,6 @@ final public class NyARTransOffset
                this.point.x=-i_center.x;\r
                this.point.y=-i_center.y;\r
                this.point.z=0;\r
-\r
+               return;\r
        }\r
 }\r
index 6587e79..27aff2f 100644 (file)
@@ -89,7 +89,7 @@ public class NyARRotTransOptimize implements INyARRotTransOptimize
         * @return\r
         * @throws NyARException\r
         */\r
-       private double modifyMatrix(NyARRotMatrix io_rot,NyARDoublePoint3d trans, NyARDoublePoint3d[] i_vertex3d, NyARDoublePoint2d i_vertex2d[]) throws NyARException\r
+       private double modifyMatrix(NyARRotMatrix io_rot,NyARDoublePoint3d trans, NyARDoublePoint3d[] i_vertex3d, NyARDoublePoint2d[] i_vertex2d) throws NyARException\r
        {\r
                double factor;\r
                double a2, b2, c2;\r
index 4945175..3d06011 100644 (file)
@@ -37,6 +37,11 @@ import jp.nyatla.nyartoolkit.core.types.stack.*;
 import jp.nyatla.nyartoolkit.core.types.*;\r
 import jp.nyatla.nyartoolkit.core.rasterreader.*;\r
 \r
+/**\r
+ * QRコードの4頂点候補を探そうとするクラス。\r
+ * 未完成\r
+ *\r
+ */\r
 public class NyARRasterDetector_QrCodeEdge\r
 {\r
        private NyARIntRectStack _result;\r
index ee93b66..55720ec 100644 (file)
@@ -68,7 +68,7 @@ public class RawFileTest
 \r
                // AR用のパターンコードを読み出し\r
                NyARCode code = new NyARCode(16, 16);\r
-               code.loadFromARFile(code_file);\r
+               code.loadARPattFromFile(code_file);\r
 \r
                // 試験イメージの読み出し(320x240 BGRAのRAWデータ)\r
                File f = new File(data_file);\r
@@ -82,14 +82,14 @@ public class RawFileTest
                NyARSingleDetectMarker ar = new NyARSingleDetectMarker(ap, code, 80.0);\r
                NyARTransMatResult result_mat = new NyARTransMatResult();\r
                ar.setContinueMode(false);\r
-               ar.detectMarkerLite(ra, 110);\r
+               ar.detectMarkerLite(ra, 100);\r
                ar.getTransmationMatrix(result_mat);\r
 \r
                // マーカーを検出\r
                Date d2 = new Date();\r
-               for (int i = 0; i < 10000; i++) {\r
+               for (int i = 0; i < 1000; i++) {\r
                        // 変換行列を取得\r
-                       ar.detectMarkerLite(ra, 110);\r
+                       ar.detectMarkerLite(ra, 100);\r
                        ar.getTransmationMatrix(result_mat);\r
                }\r
                Date d = new Date();\r
index 9221943..d22fdbf 100644 (file)
@@ -1,9 +1,6 @@
-/**
- * VFM+ARToolkitテストプログラム
- * カメラから取り込んだデータからマーカーを検出して、一致度と変換行列を表示します。
- * (c)2008 A虎@nyatla.jp
- * airmail(at)ebony.plala.or.jp
- * http://nyatla.jp/
+/* このソースは実験用のソースです。
+ * 動いたり動かなかったりします。
+ * 
  */
 package jp.nyatla.nyartoolkit.dev;
 
@@ -19,10 +16,8 @@ import java.awt.*;
 
 
 import jp.nyatla.nyartoolkit.core.labeling.*;
-import jp.nyatla.nyartoolkit.core.labeling.types.*;
 import jp.nyatla.nyartoolkit.core.raster.*;
 import jp.nyatla.nyartoolkit.core.rasterfilter.*;
-import jp.nyatla.nyartoolkit.core.rasterfilter.rgb2gs.*;
 import jp.nyatla.nyartoolkit.core2.rasteranalyzer.*;
 import jp.nyatla.nyartoolkit.core2.rasteranalyzer.threshold.*;
 import jp.nyatla.nyartoolkit.core2.rasterfilter.gs2bin.*;
index 3cf02eb..b9b7c28 100644 (file)
@@ -1,3 +1,7 @@
+/* このソースは実験用のソースです。\r
+ * 動いたり動かなかったりします。\r
+ * \r
+ */\r
 package jp.nyatla.nyartoolkit.dev;\r
 \r
 import java.awt.Frame;\r
@@ -7,7 +11,7 @@ import java.io.FileInputStream;
 import jp.nyatla.nyartoolkit.core.raster.*;\r
 import jp.nyatla.nyartoolkit.core.raster.rgb.NyARRgbRaster_BGRA;\r
 import jp.nyatla.nyartoolkit.core.labeling.*;\r
-import jp.nyatla.nyartoolkit.core.labeling.types.*;\r
+\r
 import jp.nyatla.nyartoolkit.core2.rasteranalyzer.*;\r
 import jp.nyatla.utils.j2se.*;\r
 \r