\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
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
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
\r
/**\r
* i_imageにマーカー検出処理を実行し、結果を記録します。\r
- * \r
+ * ここからん\r
* @param i_raster\r
* マーカーを検出するイメージを指定します。\r
* @param i_thresh\r
}\r
}\r
\r
+/** 内部クラスです。ユーザが使用することはありません*/\r
class NyARDetectMarkerResult\r
{\r
public int arcode_id;\r
}\r
\r
\r
+/** 内部クラスです。ユーザが使用することはありません*/\r
class NyARDetectMarkerResultStack extends NyARObjectStack<NyARDetectMarkerResult>\r
{\r
public NyARDetectMarkerResultStack(int i_length) throws NyARException\r