OSDN Git Service

git-svn-id: http://svn.sourceforge.jp/svnroot/nyartoolkit/NyARToolkit/trunk@793 7cac0...
[nyartoolkit-and/nyartoolkit-and.git] / lib / src / jp / nyatla / nyartoolkit / detector / NyARDetectMarker.java
index 0743ac0..4c68292 100644 (file)
@@ -47,14 +47,24 @@ import jp.nyatla.nyartoolkit.core.types.stack.NyARObjectStack;
 \r
 \r
 \r
-\r
-\r
 /**\r
- * 複数のマーカーを検出し、それぞれに最も一致するARコードを、コンストラクタで登録したARコードから 探すクラスです。最大300個を認識しますが、ゴミラベルを認識したりするので100個程度が限界です。\r
- * \r
+ * このクラスは、複数のマーカを取り扱うマーカ検出器です。\r
+ * 登録したn個のARマーカに対応するマーカを入力画像から検出し、その変換行列と一致度を返します。\r
+ * この関数はn個の登録したマーカに対して、画像中のm個のマーカから、最も位置するものを割り当てる動作をします。\r
+ * そのため、同一な種類(パターン)のマーカが複数存在する映像を、正しく処理できません。また、同一なマーカパターンを\r
+ * 複数登録することもできません。\r
+ * <p>簡単な使い方\r
+ * <ol>\r
+ * <li>インスタンスを作成します。パラメータには、計算アルゴリズムと入力画像形式、カメラパラメータ、検出するマーカパターンテーブルがあります。\r
+ * <li>{@link #detectMarkerLite}関数に画像と敷居値を入力して、マーカを検出します。\r
+ * <li>検出数が得られるので、インデクス番号を元に、{@link #getConfidence}等の関数を使って、取得したマーカの状態を得ます。\r
+ * <li>以降は、この処理を繰り返してマーカのパラメータを更新します。\r
+ * </ol>\r
+ * </p>\r
  */\r
 public class NyARDetectMarker\r
 {\r
+       /** 矩形検出器のブリッジ*/\r
        private class RleDetector extends NyARSquareContourDetector_Rle\r
        {\r
                //公開プロパティ\r
@@ -152,29 +162,29 @@ public class NyARDetectMarker
                        this.result_stack.clear();\r
                        \r
                }\r
-       }       \r
+       }\r
+       /** 変換行列計算器のインスタンス*/\r
+       private INyARTransMat _transmat;\r
        private static final int AR_SQUARE_MAX = 300;\r
        private boolean _is_continue = false;\r
        private RleDetector _square_detect;\r
-       protected INyARTransMat _transmat;\r
        private NyARRectOffset[] _offset;       \r
 \r
-\r
        /**\r
-        * 複数のマーカーを検出し、最も一致するARCodeをi_codeから検索するオブジェクトを作ります。\r
-        * \r
+        * コンストラクタです。\r
+        * パターンの重複しない複数のマーカを検出する検出器を作成します。\r
         * @param i_param\r
-        * カメラパラメータを指定します。\r
+        * カメラパラメータを指定します。このサイズは、{@link #detectMarkerLite}に入力する画像と同じである必要があります。\r
         * @param i_code\r
-        * 検出するマーカーのARCode配列を指定します。\r
-        * 配列要素のインデックス番号が、そのままgetARCodeIndex関数で得られるARCodeインデックスになります。 \r
-        * 例えば、要素[1]のARCodeに一致したマーカーである場合は、getARCodeIndexは1を返します。\r
+        * 検出するマーカーパターンを格納した、{@link NyARCode}の配列を指定します。配列には、先頭から、0から始まるインデクス番号が割り当てられます。\r
+        * このインデクス番号は、{@link #getConfidence(int)}等のインデクス番号に使います。\r
         * @param i_marker_width\r
-        * i_codeのマーカーサイズをミリメートルで指定した配列を指定します。 先頭からi_number_of_code個の要素には、有効な値を指定する必要があります。\r
+        * 正方形マーカの物理サイズをmm単位で指定します。\r
         * @param i_number_of_code\r
-        * i_codeã\81«å\90«ã\81¾ã\82\8cã\82\8bã\80\81ARCodeã\81®数を指定します。\r
+        * i_codeã\81®æ\9c\89å\8a¹ã\81ªå\80\8b数を指定します。\r
         * @param i_input_raster_type\r
-        * 入力ラスタのピクセルタイプを指定します。この値は、INyARBufferReaderインタフェイスのgetBufferTypeの戻り値を指定します。\r
+        * {@link #detectMarkerLite}に入力するラスタのバッファフォーマットを指定します。\r
+        * この値は、{@link INyARRgbRaster#getBufferType}関数の戻り値を利用します。\r
         * @throws NyARException\r
         */\r
        public NyARDetectMarker(NyARParam i_param,NyARCode[] i_code,double[] i_marker_width, int i_number_of_code,int i_input_raster_type) throws NyARException\r
@@ -182,6 +192,22 @@ public class NyARDetectMarker
                initInstance(i_param,i_code,i_marker_width,i_number_of_code,i_input_raster_type);\r
                return;\r
        }\r
+       /**\r
+        * この関数は、インスタンスを初期化します。\r
+        * コンストラクタから呼び出します。\r
+        * @see NyARDetectMarker#NyARDetectMarker(NyARParam, NyARCode[], double[], int, int)\r
+        * @param i_ref_param\r
+        * Check see also\r
+        * @param i_ref_code\r
+        * Check see also\r
+        * @param i_marker_width\r
+        * Check see also\r
+        * @param i_number_of_code\r
+        * Check see also\r
+        * @param i_input_raster_type\r
+        * Check see also\r
+        * @throws NyARException\r
+        */\r
        protected void initInstance(\r
                NyARParam       i_ref_param,\r
                NyARCode[]      i_ref_code,\r
@@ -216,7 +242,7 @@ public class NyARDetectMarker
 \r
        /**\r
         * i_imageにマーカー検出処理を実行し、結果を記録します。\r
-        * \r
+        * ここからん\r
         * @param i_raster\r
         * マーカーを検出するイメージを指定します。\r
         * @param i_thresh\r
@@ -300,6 +326,7 @@ public class NyARDetectMarker
        }\r
 }\r
 \r
+/** 内部クラスです。ユーザが使用することはありません*/\r
 class NyARDetectMarkerResult\r
 {\r
        public int arcode_id;\r
@@ -309,6 +336,7 @@ class NyARDetectMarkerResult
 }\r
 \r
 \r
+/** 内部クラスです。ユーザが使用することはありません*/\r
 class NyARDetectMarkerResultStack extends NyARObjectStack<NyARDetectMarkerResult>\r
 {\r
        public NyARDetectMarkerResultStack(int i_length) throws NyARException\r