\r
\r
\r
-\r
/**\r
* 画像データのサンプラです。画像データから、輪郭線抽出のヒントを計算して、出力コンテナに格納します。\r
* 入力-LowResolutionLabelingSamplerIn\r
* 出力-LowResolutionLabelingSamplerOut\r
*/\r
+/**\r
+ * このクラスは、{@link NyARTracker}が使う、ラべリングクラスです。\r
+ * 1/2^nに縮尺した画像をラべリングして、元画像の解像度でラベルデータを返します。\r
+ * このクラスに入力されるデータは縮尺されたエッジ画像のため、その為のパラメータ調整がしてあります。\r
+ */\r
public class LowResolutionLabelingSampler\r
{\r
/**\r
* 1/n画像のラべリングをするクラス。\r
- * @author nyatla\r
- *\r
*/\r
- class Main_Labeling extends NyARLabeling_Rle\r
+ private class Main_Labeling extends NyARLabeling_Rle\r
{\r
private int _pix;\r
public int current_th;\r
}\r
private Main_Labeling _main_labeling;\r
/**\r
- * コンストラクタです。samplingするラスターのパラメタを指定して、インスタンスを初期化します。\r
+ * コンストラクタです。\r
+ * 入力画像解像度と、サンプリングパラメータを指定して、インスタンスを初期化します。\r
* @param i_width\r
- * サンプリングするLowResolutionLabelingSamplerInの基本解像度幅\r
- * この値は、samplingに渡すLowResolutionLabelingSamplerInに設定した値と同じである必要があります。\r
+ * サンプリングするラスタの解像度\r
* @param i_height\r
- * サンプリングするLowResolutionLabelingSamplerInの基本解像度高さ\r
- * この値は、samplingに渡すLowResolutionLabelingSamplerInに設定した値と同じである必要があります。\r
+ * サンプリングするラスタの解像度\r
* @param i_pix_size\r
- * 座標系の倍率係数を指定する。例えば1/2画像(面積1/4)のサンプリング結果を元画像サイズに戻すときは、4を指定する。\r
- * 最低解像度とするRasterのdepth。\r
- * この値は、samplingに渡すLowResolutionLabelingSamplerInに設定した値と同じである必要があります。\r
- * <p>メモ:ラスタ形式の多値化を考えるならアレだ。Impl作成。</p>\r
+ * 座標系の倍率係数。\r
+ * 例えば1/2画像(面積1/4)のサンプリング結果を元画像サイズに戻すときは、2を指定する。\r
* @throws NyARException\r
*/\r
public LowResolutionLabelingSampler(int i_width,int i_height,int i_pix_size) throws NyARException\r
this._main_labeling=new Main_Labeling(i_width/i_pix_size,i_height/i_pix_size,i_pix_size);\r
}\r
/**\r
- * i_inのデータをサンプリングして、o_outにサンプル値を作成します。\r
- * この関数は、o_outにi_inのサンプリング結果を出力します。既にo_outにあるデータは初期化されます。\r
+ * この関数は、入力ラスタをサンプリングして、o_outにラベル情報を出力します。\r
* @param i_in\r
* 入力元のデータです。\r
* @param i_th\r
* ラべリングの敷居値です。\r
* @param o_out\r
* 出力先のデータです。\r
+ * オブジェクトのデータは、初期化されます。\r
* @throws NyARException\r
*/\r
public void sampling(NyARGrayscaleRaster i_in,int i_th,LowResolutionLabelingSamplerOut o_out) throws NyARException\r
import jp.nyatla.nyartoolkit.core.utils.NyARManagedObjectPool;\r
\r
/**\r
- * LowResolutionLabelingSampler用の出力コンテナです。サンプリング結果を受け取ります。\r
- * 内容には、AreaDataItemの集合を持ちます。\r
- * AreaDataItemは元画像に対する、Labeling結果と元画像の情報のセットです。\r
+ * このクラスは、{@link LowResolutionLabelingSampler}の結果を受け取るコンテナです。\r
+ * ラベルリストを所有します。\r
*/\r
public class LowResolutionLabelingSamplerOut\r
{\r
/**\r
- * クラス内定義ができない処理系では、LowResolutionLabelingSamplerOutItemで定義してください。\r
+ * ラべリング結果を格納するデータクラスです。\r
+ * <p> メモ - クラス内定義ができない処理系では、LowResolutionLabelingSamplerOutItemで定義してください。</p>\r
*\r
*/\r
public class Item extends NyARManagedObject\r
{\r
- /**\r
- * ラべリング対象のエントリポイントです。\r
- */\r
+ /** 輪郭のエントリポイントです。*/\r
public NyARIntPoint2d entry_pos=new NyARIntPoint2d();\r
- /**\r
- * ラべリング対象の範囲を、トップレベル換算した値です。クリップ情報から計算されます。\r
- */\r
+ /** ラべルのクリップ範囲を、元画像の解像度に換算した値です。*/\r
public NyARIntRect base_area =new NyARIntRect();\r
- /**\r
- * ラべリング対象の範囲中心を、トップレベルに換算した値です。クリップ情報から計算されます。\r
- */\r
+ /** ラベルのクリップ範囲の中心を、元画像の解像度に換算した値です。*/\r
public NyARIntPoint2d base_area_center=new NyARIntPoint2d();\r
- /**\r
- * エリア矩形の対角距離の2乗値\r
- */\r
+ /** ラベル範囲矩形の、対角距離の2乗値です。*/\r
public int base_area_sq_diagonal;\r
- \r
+ /** ラベルを検出した時の閾値です。*/\r
public int lebeling_th;\r
- \r
+ /**\r
+ * コンストラクタです。\r
+ * @param i_pool\r
+ * 親プールのコントロールインタフェイス。\r
+ */\r
public Item(INyARManagedObjectPoolOperater i_pool)\r
{\r
super(i_pool);\r
} \r
/**\r
* AreaのPoolクラス\r
- *\r
*/\r
private class AreaPool extends NyARManagedObjectPool<Item>\r
{\r
}\r
/**\r
* AreaのStackクラス\r
- *\r
*/\r
private class AreaStack extends NyARPointerStack<Item>\r
{\r
super.initInstance(i_length, Item.class);\r
}\r
}\r
- /**\r
- * 元\r
- */\r
+\r
private AreaPool _pool;\r
private AreaStack _stack;\r
-\r
+ /**\r
+ * コンストラクタです。\r
+ * 格納出来るラベルの最大値を指定して、インスタンスを生成します。\r
+ * @param i_length\r
+ * 格納するラベルの最大値\r
+ * @throws NyARException\r
+ */\r
public LowResolutionLabelingSamplerOut(int i_length) throws NyARException\r
{\r
this._pool=new AreaPool(i_length);\r
return;\r
}\r
/**\r
- * Samplerが使う関数です。ユーザは通常使用しません。\r
- * SamplerOutの内容を初期状態にします。\r
- * @param i_source\r
+ * この関数は、インスタンスを初期化します。\r
+ * {@link LowResolutionLabelingSampler}が使う関数です。ユーザが使用することはありません。\r
*/\r
public void initializeParams()\r
{\r
//スタックをクリア\r
this._stack.clear();\r
}\r
+ /**\r
+ * この関数は、新しいラベル要素を1個割り当てます。\r
+ * 通常、ユーザが使用することはありません。\r
+ * @return\r
+ * 割り当てられたラベルオブジェクト。失敗するとNULL\r
+ * @throws NyARException\r
+ */\r
public Item prePush() throws NyARException\r
{\r
Item result=this._pool.newObject();\r
\r
}\r
/**\r
- * 検出したエリアデータの配列を返します。\r
+ * この関数は、ラベル配列の参照値を返します。\r
+ * 有効な個数は、{@link #getLength}で得られます。\r
* @return\r
+ * ラベル配列の参照値。\r
*/\r
public Item[] getArray()\r
{\r
return this._stack.getArray();\r
}\r
/**\r
- * 検出したエリアデータの総数を返します。\r
+ * この関数は、有効なラベル配列の要素数を返します。\r
* @return\r
+ * 有効な要素数。\r
*/\r
public int getLength()\r
{\r
import jp.nyatla.nyartoolkit.rpf.utils.VecLinearCoordinates;\r
\r
/**\r
- * NyARVectorReaderインタフェイスのうち、バッファフォーマットに依存しない関数を実装するクラス。\r
+ * NyARVectorReaderインタフェイスのうち、画素形式に依存しない関数を実装するクラス。\r
* 派生クラスで画素アクセス関数を実装して、最終的なクラスに仕上げます。\r
*\r
*/\r
\r
/**\r
* コンストラクタです。\r
- * ラスタの画素フォーマットを指定して、ヒストグラム分析器を作ります。\r
+ * ラスタの画素形式を指定して、ヒストグラム分析器を作ります。\r
* @param i_raster_format\r
- * 入力するラスタの画素フォーマットを指定します。\r
- * {@link NyARBufferType#INT1D_GRAY_8}形式以外の画素フォーマットの場合は、解析時にグレースケール化を行います。\r
+ * 入力するラスタの画素形式を指定します。\r
+ * {@link NyARBufferType#INT1D_GRAY_8}以外の画素形式の場合は、解析時にグレースケール化を行います。\r
* @param i_vertical_interval\r
* 画素スキャン時の、Y軸方向のスキップ数を指定します。数値が大きいほど高速に解析できますが、精度は劣化します。0以上を指定してください。\r
* @throws NyARException\r
import jp.nyatla.nyartoolkit.core.analyzer.histogram.*;\r
import jp.nyatla.nyartoolkit.core.analyzer.raster.*;\r
import jp.nyatla.nyartoolkit.core.raster.INyARRaster;\r
-import jp.nyatla.nyartoolkit.core.types.NyARHistogram;\r
-import jp.nyatla.nyartoolkit.core.types.NyARIntRect;\r
+import jp.nyatla.nyartoolkit.core.types.*;\r
\r
/**\r
* このクラスは、画像のヒストグラムから{@link NyARHistogramAnalyzer_SlidePTile}による敷居値検出をする機能を提供します。\r
private NyARHistogram _histogram;\r
/**\r
* この関数は、ヒストグラム作成時の行スキップ数を指定します。\r
- * @see {@link NyARRasterAnalyzer_Histogram#setVerticalInterval}\r
* @param i_step\r
* 新しい行スキップ数\r
+ * @see NyARRasterAnalyzer_Histogram#setVerticalInterval\r
*/\r
public void setVerticalInterval(int i_step)\r
{\r
* @param i_persentage\r
* {@link NyARHistogramAnalyzer_SlidePTile#NyARHistogramAnalyzer_SlidePTile}へ渡す分析パラメータです。\r
* @param i_raster_format\r
- * 分析するラスタの画素フォーマットです。\r
+ * 分析するラスタの画素形式です。\r
* @param i_vertical_interval\r
* ヒストグラム作成時の行スキップ数です。\r
* @throws NyARException\r
return;\r
}\r
/**\r
- * 画像バッファを返します。バッファの形式は、{@link NyARBufferType.INT1D}(int[])です。\r
+ * 画像バッファを返します。バッファの形式は、{@link NyARBufferType#INT1D}(int[])です。\r
*/\r
public Object getBuffer()\r
{\r
* この関数の元になるARToolKitの関数は、static ARInt16 *labeling2( ARUint8 *image, int thresh,int *label_num, int **area, double **pos, int **clip,int **label_ref, int LorR )です。\r
* </p>\r
* @param i_raster\r
- * 入力元の二値ラスタオブジェクトです。バッファフォーマットは、{@link NyARBufferType.INT1D_BIN_8}である必要があります。\r
+ * 入力元の二値ラスタオブジェクトです。画素形式は、{@link NyARBufferType#INT1D_BIN_8}である必要があります。\r
* @param o_destination\r
* ラべリング画像の出力先オブジェクトです。i_rasterと同じサイズである必要があります。\r
* @throws NyARException\r
}\r
}\r
/**\r
- * このクラスは、{@link #RleInfoStack}の要素です。\r
+ * このクラスは、{@link RleInfoStack}の要素です。\r
* RLEフラグメントのパラメータを保持します。\r
* ユーザが使うことはありません。\r
*/\r
/**\r
* この関数は、ラスタから差分画像を生成して、格納します。\r
* 制限事項として、{@link NyARBufferType#INT1D_X8R8G8B8_32}形式のラスタのみ、入力できます。\r
- * @param i_buffer\r
+ * @param i_raster\r
* 差分画像の元画像。サイズは、このインスタンスと同じである必要があります。\r
*/\r
public void setRaster(INyARRaster i_raster)\r
\r
/**\r
* この関数は、ラスタから差分画像を生成して、格納します。\r
- * @param i_buffer\r
+ * @param i_raster\r
* 差分画像の元画像。サイズは、このインスタンスと同じである必要があります。\r
* {@link NyARBufferType#INT1D_X8R8G8B8_32}形式のバッファを持つラスタの場合、他の形式よりも\r
* 何倍か高速に動作します。\r
/**\r
* この関数は、元画像を回転してから、差分画像を生成して、格納します。\r
* 制限として、この関数はあまり高速ではありません。連続使用するときは、最適化を検討してください。\r
- * @param i_reader\r
+ * @param i_raster\r
* 差分画像の元画像。サイズは、このインスタンスと同じである必要があります。\r
* @param i_direction\r
* 右上の位置です。0=1象限、1=2象限、、2=3象限、、3=4象限の位置に対応します。\r
* コンストラクタ。\r
* 基準パターンの解像度を指定して、インスタンスを生成します。\r
* このコンストラクタで生成したインスタンスの基準パターンは、NULLになっています。\r
- * 後で基準パターンを{@link setARCode}関数で設定してください。\r
+ * 後で基準パターンを{@link #setARCode}関数で設定してください。\r
* @param i_width\r
* 基準パターンのサイズ\r
* @param i_height\r
protected int _rgbpixels;\r
/**\r
* コンストラクタ。\r
- * 基準パターンの解像度を指定して、インスタンスを生成します。\r
- * このコンストラクタで生成したインスタンスの基準パターンは、NULLになっています。\r
- * 後で基準パターンを{@link setARCode}関数で設定してください。\r
- * @param i_width\r
- * 基準パターンのサイズ\r
- * @param i_height\r
- * 基準パターンのサイズ\r
- */ \r
+ * 基準パターンを元に、インスタンスを生成します。\r
+ * @param i_code_ref\r
+ * セットする基準パターンの参照値\r
+ */\r
public NyARMatchPatt_Color_WITHOUT_PCA(NyARCode i_code_ref)\r
{\r
int w=i_code_ref.getWidth();\r
}\r
/**\r
* コンストラクタ。\r
- * 基準パターンを元に、評価インスタンスを生成します。\r
- * @param i_code_ref\r
- * セットする基準パターン\r
+ * 基準パターンの解像度を指定して、インスタンスを生成します。\r
+ * このコンストラクタで生成したインスタンスの基準パターンは、NULLになっています。\r
+ * 後で基準パターンを{@link #setARCode}関数で設定してください。\r
+ * @param i_width\r
+ * 基準パターンのサイズ\r
+ * @param i_height\r
+ * 基準パターンのサイズ\r
*/ \r
public NyARMatchPatt_Color_WITHOUT_PCA(int i_width, int i_height)\r
{\r
* このクラスは、カラーで2パターンの一致度を計算します。\r
* 評価アルゴリズムは、ARToolKitの、AR_TEMPLATE_MATCHING_COLORかつAR_MATCHING_WITH_PCAと同様です。\r
* 比較対象のデータには、{@link NyARMatchPattDeviationColorData}クラスの物を使います。\r
- * @bug このクラスは動作確認が不十分です。動作しないかもしれませんので、注意してください。\r
+ * <p>bug - \r
+ * このクラスは動作確認が不十分です。動作しないかもしれませんので、注意してください。\r
+ * </p>\r
*/\r
public class NyARMatchPatt_Color_WITH_PCA extends NyARMatchPatt_Color_WITHOUT_PCA\r
{\r
* コンストラクタ。\r
* 基準パターンの解像度を指定して、インスタンスを生成します。\r
* このコンストラクタで生成したインスタンスの基準パターンは、NULLになっています。\r
- * 後で基準パターンを{@link setARCode}関数で設定してください。\r
+ * 後で基準パターンを{@link #setARCode}関数で設定してください。\r
* @param i_width\r
* 基準パターンのサイズ\r
* @param i_height\r
\r
/**\r
* この関数は、パラメータ値を配列へ返します。\r
- * @param i_factor\r
+ * @param o_factor\r
* 歪みパラメータ値の出力先配列。4要素である必要があります。\r
*/\r
public void getValue(double[] o_factor)\r
*/\r
public Object getBuffer();\r
/**\r
- * ã\83\90ã\83\83ã\83\95ã\82¡ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®ã\82¿ã\82¤ã\83\97を返します。\r
+ * ã\81\93ã\81®é\96¢æ\95°ã\81¯ã\80\81ã\83\90ã\83\83ã\83\95ã\82¡ã\81®ç\94»ç´ å½¢å¼\8fを返します。\r
* 実装クラスでは、{@link #getBuffer}の返すバッファの形式を返してください。\r
* @return\r
* バッファの形式。{@link NyARBufferType}の定義値です。\r
*/\r
public int getBufferType();\r
/**\r
- * この関数は、バッファのタイプがi_type_valueであるか、チェックします。\r
- * å®\9fè£\85ã\82¯ã\83©ã\82¹ã\81§ã\81¯ã\80\81æ ¼ç´\8dã\81\97ã\81¦ã\81\84ã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\82¿ã\82¤ã\83\97がi_type_valueと等しいかを確認してください。\r
+ * この関数は、画素形式がi_type_valueであるか、チェックします。\r
+ * å®\9fè£\85ã\82¯ã\83©ã\82¹ã\81§ã\81¯ã\80\81æ ¼ç´\8dã\81\97ã\81¦ã\81\84ã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\81®ç\94»ç´ å½¢å¼\8fがi_type_valueと等しいかを確認してください。\r
* @param i_type_value\r
* バッファタイプ値。{@link NyARBufferType}の定義値です。\r
* @return\r
- * 真偽値。\r
+ * 真偽値。画素形式が一致していればtrue。\r
*/\r
public boolean isEqualBufferType(int i_type_value);\r
/**\r
* 外部参照バッファを使用できるクラスで使います。\r
* 実装クラスでは、{@link #getBuffer}がオブジェクトを返せるかの判定値を返してください。\r
* @return\r
- * 真偽値。\r
+ * 真偽値。{@link #getBuffer}が利用可能ならtrue。\r
*/\r
public boolean hasBuffer();\r
/**\r
* @param i_is_alloc\r
* バッファ参照方法値\r
* @return\r
+ * 初期化に成功するとtrueを返します。\r
*/\r
protected boolean initInstance(NyARIntSize i_size, int i_buf_type,boolean i_is_alloc)\r
{\r
/**\r
* この関数は、指定ラスタに、このインスタンスの内容をコピーをします。\r
* 異解像度間コピーもできますが、入力範囲とラスタサイズの間には、一定の関係が成立する必要があります。\r
- * @param i_input\r
- * 入力ラスタ\r
- * @param i_top\r
- * 入力ラスタの左上点を指定します。\r
* @param i_left\r
* 入力ラスタの左上点を指定します。\r
+ * @param i_top\r
+ * 入力ラスタの左上点を指定します。\r
* @param i_skip\r
- * skip値。1なら等倍、2なら1/2倍、3なら1/3倍の偏重の画像を出力します。\r
+ * skip値。1なら等倍、2なら1/2倍、3なら1/3倍の画像を出力します。\r
* @param o_output\r
* 出力先ラスタ。このラスタの解像度は、w=(i_input.w-i_left)/i_skip,h=(i_input.h-i_height)/i_skipを満たす必要があります。\r
- * 出力先ラスタと入力ラスタのバッファタイプは、同じである必要があります。\r
+ * 出力先ラスタと入力ラスタの画素形式は、同じである必要があります。\r
*/\r
public void copyTo(int i_left,int i_top,int i_skip, NyARGrayscaleRaster o_output)\r
{\r
}\r
/**\r
* この関数は、ラスタのバッファへの参照値を返します。\r
- * バッファの形式{@link NyARBufferType.INT1D_X7H9S8V8_32}です。\r
+ * バッファの形式{@link NyARBufferType#INT1D_X7H9S8V8_32}です。\r
*/\r
public Object getBuffer()\r
{\r
* ラスタのサイズ\r
* @param i_height\r
* ラスタのサイズ\r
- * @param i_raster_type\r
- * ラスタのバッファ形式。\r
+ * @param i_buffer_type\r
+ * ラスタの画素形式。\r
* {@link NyARBufferType}に定義された定数値を指定してください。\r
* 指定できる値は、クラスの説明を見てください。\r
* @param i_is_alloc\r
* ラスタのサイズ\r
* @param i_height\r
* ラスタのサイズ\r
- * @param i_raster_type\r
- * ラスタのバッファ形式。\r
+ * @param i_buffer_type\r
+ * ラスタの画素形式。\r
* {@link NyARBufferType}に定義された定数値を指定してください。\r
* 指定できる値は、クラスの説明を見てください。\r
* @throws NyARException\r
* @param i_is_alloc\r
* バッファ参照方法値\r
* @return\r
+ * 初期化に成功するとtrueを返します。\r
*/\r
protected boolean initInstance(NyARIntSize i_size,int i_buf_type,boolean i_is_alloc)\r
{\r
* インスタンスがバッファを所有するかを返します。\r
* コンストラクタでi_is_allocをfalseにしてラスタを作成した場合、\r
* バッファにアクセスするまえに、バッファの有無をこの関数でチェックしてください。\r
- * @return\r
*/ \r
public boolean hasBuffer()\r
{\r
public interface INyARRgbRaster extends INyARRaster\r
{\r
/**\r
- * この関数は、画素フォーマットによらない画素アクセスを行うオブジェクトへの参照値を返します。\r
+ * この関数は、画素形式によらない画素アクセスを行うオブジェクトへの参照値を返します。\r
* 実装クラスでは、所有するバッファに関連したラスタ読出しオブジェクトを返す処理を実装してください。\r
* @return\r
* オブジェクトの参照値\r
return true;\r
}\r
/**\r
- * この関数は、画素フォーマットによらない画素アクセスを行うオブジェクトへの参照値を返します。\r
+ * この関数は、画素形式によらない画素アクセスを行うオブジェクトへの参照値を返します。\r
* @return\r
* オブジェクトの参照値\r
* @throws NyARException\r
return;\r
}\r
/**\r
- * この関数は、画素フォーマットによらない画素アクセスを行うオブジェクトへの参照値を返します。\r
+ * この関数は、画素形式によらない画素アクセスを行うオブジェクトへの参照値を返します。\r
* @return\r
* オブジェクトの参照値\r
* @throws NyARException\r
private IdoFilterImpl _dofilterimpl;\r
/**\r
* コンストラクタです。\r
- * 入力/出力ラスタのバッファフォーマットを指定して、インスタンスを生成します。\r
+ * 入力/出力ラスタの画素形式を指定して、インスタンスを生成します。\r
* @param i_raster_type\r
* ラスタ形式。\r
* @throws NyARException\r
* コンストラクタです。\r
* 固定式位置の初期値、入力ラスタの画素形式を指定して、フィルタを作成します。\r
* 出力ラスタの形式は、{@link NyARBufferType#INT1D_BIN_8}を選択します。\r
- * @param i_initial_threshold\r
+ * @param i_threshold\r
* 敷居値の初期値です。0<n<256の値を指定します。\r
* @param i_in_raster_type\r
* 入力ラスタの形式です。\r
return true;\r
} \r
/**\r
- * この関数は、クラスを初期化します。\r
- * コンストラクタから呼び出します。\r
- * @param i_in_raster_type\r
- * 入力ラスタの画素形式を指定します。\r
- * @param i_out_raster_type\r
- * 出力ラスタの画素形式を指定します。\r
- * @return\r
- * 初期化に成功すると、trueを返します。\r
+ * この関数は、入力したRGBラスタを2値ラスタへ変換します。\r
*/ \r
public void doFilter(INyARRgbRaster i_input, NyARGrayscaleRaster i_output) throws NyARException\r
{\r
*/\r
package jp.nyatla.nyartoolkit.core.rasterreader;\r
\r
-import jp.nyatla.nyartoolkit.NyARException;\r
-\r
+import jp.nyatla.nyartoolkit.*;\r
+import jp.nyatla.nyartoolkit.core.raster.rgb.*;\r
/**\r
* このインタフェイスは、ラスタからRGBピクセル値を読みだす関数を定義します。\r
* {@link INyARRgbRaster}インタフェイスを実装したクラスで使うことを想定しています。\r
* </ul>\r
* </p>\r
* <p>出力ラスタについて\r
- * 基本的には全ての{@link NyARBufferType.INT1D_X8R8G8B8_32}形式のバッファを持つラスタを使用してください。\r
+ * 基本的には全ての{@link NyARBufferType#INT1D_X8R8G8B8_32}形式のバッファを持つラスタを使用してください。\r
* 他の形式でも動作しますが、低速な場合があります。\r
* </p>\r
* <p>高速化について - \r
/**\r
* コンストラクタです。\r
* 参照するラスタのバッファとサイズを指定して、インスタンスを作成します。\r
- * @param i_buf\r
+ * @param i_ref_buf\r
* ラスタのバッファオブジェクトの参照値\r
* @param i_size\r
* ラスタのサイズオブジェクトの参照値。\r
/**\r
* このクラスは、輪郭線の抽出クラスです。\r
* 画像中の1点を開始点として、8方位探索で輪郭線を抽出します。出力は輪郭点の配列です。\r
- * <p>入力できる画素フォーマット - {@link #getContour}に入力できる画素フォーマットに制限があります。<br/>\r
+ * <p>入力できる画素形式 - {@link #getContour}に入力できる画素形式に制限があります。<br/>\r
* {@link NyARBinRaster}\r
* <ul>\r
* <li>{@link NyARBufferType#INT1D_BIN_8}\r
* 輪郭抽出の開始点です。\r
* @param i_entry_y\r
* 輪郭抽出の開始点です。\r
- * @param i_array_size\r
- * o_coordの有効長を指定します。\r
* @param o_coord\r
* 輪郭点を格納するオブジェクトを指定します。\r
* @return\r
* 輪郭取得元画像の歪み矯正オブジェクトとサイズを指定して、インスタンスを生成します。\r
* @param i_size\r
* 入力画像のサイズ\r
- * @param i_distfactor_ref\r
+ * @param i_distfactor\r
* 樽型歪みを補正する場合に、オブジェクトを指定します。\r
* nullの場合、補正を行いません。\r
*/\r
*/\r
package jp.nyatla.nyartoolkit.core.types;\r
\r
+import jp.nyatla.nyartoolkit.core.raster.*;\r
/**\r
- * このクラスは、主に{@link INyARRaster}で使用する、バッファ形式定数を定義します。\r
+ * このクラスは、バッファの形式を表す定数を定義します。\r
+ * 定数は、主に{@link INyARRaster}で使用する画素形式として使います。\r
* バッファ形式定数は32bitの値で、フィールドの組合せで定義しています。\r
- * ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³は、定数からバッファの構造を知ることができます。\r
+ * ã\83¦ã\83¼ã\82¶は、定数からバッファの構造を知ることができます。\r
* <pre>\r
* <table>\r
* <tr><td>ビットイールド(ビット幅)</td><td>カテゴリ</td><td>備考</td></tr>\r
/** RGB形式。byte[3]で、R8G8B8の24ビットで画素が格納されている。\r
*/\r
public static final int BYTE1D_R8G8B8_24 = T_BYTE1D|0x0001;\r
- /** RGB形式。 byte[3]で、B8G8R8の24ビットの画素フォーマット。\r
+ /** RGB形式。 byte[3]で、B8G8R8の24ビットの画素形式。\r
*/\r
public static final int BYTE1D_B8G8R8_24 = T_BYTE1D|0x0002;\r
- /** RGB形式。byte[4]で、R8G8B8X8の32ビットの画素フォーマット。\r
+ /** RGB形式。byte[4]で、R8G8B8X8の32ビットの画素形式。\r
*/\r
public static final int BYTE1D_B8G8R8X8_32 = T_BYTE1D|0x0101;\r
- /** RGB形式。byte[4]で、X8R8G8B8の32ビットの画素フォーマット。\r
+ /** RGB形式。byte[4]で、X8R8G8B8の32ビットの画素形式。\r
*/\r
public static final int BYTE1D_X8R8G8B8_32 = T_BYTE1D|0x0102;\r
\r
- /** RGB形式。byte[2]で、RGB565の16ビット(little endian)の画素フォーマット。\r
+ /** RGB形式。byte[2]で、RGB565の16ビット(little endian)の画素形式。\r
*/\r
public static final int BYTE1D_R5G6B5_16LE = T_BYTE1D|0x0201;\r
- /** RGB形式。byte[2]で、RGB565の16ビット(big endian)の画素フォーマット。\r
+ /** RGB形式。byte[2]で、RGB565の16ビット(big endian)の画素形式。\r
*/\r
public static final int BYTE1D_R5G6B5_16BE = T_BYTE1D|0x0202;\r
- /** RGB形式。short[1]で、RGB565の16ビット(little endian)の画素フォーマット。\r
+ /** RGB形式。short[1]で、RGB565の16ビット(little endian)の画素形式。\r
*/ \r
public static final int WORD1D_R5G6B5_16LE = T_SHORT1D|0x0201;\r
- /** RGB形式。short[1]で、RGB565の16ビット(big endian)の画素フォーマット。\r
+ /** RGB形式。short[1]で、RGB565の16ビット(big endian)の画素形式。\r
*/\r
public static final int WORD1D_R5G6B5_16BE = T_SHORT1D|0x0202;\r
\r
*/\r
public static final int INT1D_BIN_8 = T_INT1D|0x0002;\r
\r
- /** RGB形式。int[1]で、XRGB32の32ビットの画素フォーマット。\r
+ /** RGB形式。int[1]で、XRGB32の32ビットの画素形式。\r
* (エンディアンはプラットフォーム依存。)\r
*/\r
public static final int INT1D_X8R8G8B8_32=T_INT1D|0x0102;\r
\r
- /** HSV形式。int[1]で、H:9bit(0-359),S:8bit(0-255),V(0-255)の画素フォーマット\r
+ /** HSV形式。int[1]で、H:9bit(0-359),S:8bit(0-255),V(0-255)の画素形式\r
*/\r
public static final int INT1D_X7H9S8V8_32=T_INT1D|0x0103;\r
\r
* この関数は、3点で定義される直線から、外積を計算します。\r
* 外積は、p1->p2と、p2->p3で定義する直線の外積です。\r
* @param p1\r
- * 点1\r
+ * 点1\r
* @param p2\r
- * 点2\r
- * @param p3\r
- * 点3\r
+ * 点2\r
+ * @param p3_x\r
+ * 点3の座標(X)\r
+ * @param p3_y\r
+ * 点3の座標(Y)\r
* @return\r
* 外積の値\r
*/\r
{\r
/** 点を格納する配列です。*/\r
public NyARIntPoint2d[] items;\r
- /** 有効な要素の長さです。この値の最大値は、{@link #items#length}と同じです。*/\r
+ /** 有効な要素の長さです。*/\r
public int length;\r
/**\r
* コンストラクタです。\r
}\r
/**\r
* この関数は、頂点集合から、中央値(Σp[n]/n)を求めて、インスタンスにセットします。\r
- * @param i_points\r
+ * @param i_point\r
* 頂点集合を格納した配列です。\r
- * @param i_number_of_data\r
+ * @param i_number_of_vertex\r
* 配列中の有効な頂点数です。\r
*/ \r
public final void setCenterPos(NyARIntPoint2d[] i_point,int i_number_of_vertex)\r
\r
/**\r
* この関数は、矩形を領域内にクリップします。\r
- * @param top\r
- * クリップする上辺\r
- * @param bottom\r
- * クリップする下辺\r
- * @param left\r
+ * @param i_left\r
* クリップする左辺\r
- * @param right\r
+ * @param i_top\r
+ * クリップする上辺\r
+ * @param i_right\r
* クリップする右辺\r
+ * @param i_bottom\r
+ * クリップする下辺\r
*/\r
public final void clip(int i_left,int i_top,int i_right,int i_bottom)\r
{\r
}\r
/**\r
* この関数は、引数値をインスタンスにセットします。\r
- * @param i_width\r
+ * @param i_w\r
* {@link #w}に設定する値\r
- * @param i_height\r
+ * @param i_h\r
* {@link #h}に設定する値\r
*/\r
public final void setValue(int i_w,int i_h)\r
* @param i_point2\r
* 点2\r
* @return\r
- * ç\9b´ç·\9aå¼\8fã\81\8cæ±\82ã\81¾ã\82\8cã\81°ã\80\81true\r
+ * ç\9b´ç·\9aå¼\8fã\81\8cæ±\82ã\82\8bã\81¨trueã\82\92è¿\94ã\81\97ã\81¾ã\81\99ã\80\82\r
*/\r
public final boolean makeLinearWithNormalize(NyARDoublePoint2d i_point1,NyARDoublePoint2d i_point2)\r
{\r
/**\r
* この関数は、2点を結ぶ直線式を計算して、インスタンスに格納します。\r
* 式の係数値は、正規化されます。\r
- * @param i_point1\r
- * 点1\r
- * @param i_point2\r
- * 点2\r
+ * @param x1\r
+ * 点1の座標(X)\r
+ * @param y1\r
+ * 点1の座標(Y)\r
+ * @param x2\r
+ * 点2の座標(X)\r
+ * @param y2\r
+ * 点2の座標(Y)\r
* @return\r
- * ç\9b´ç·\9aå¼\8fã\81\8cæ±\82ã\81¾ã\82\8cã\81°ã\80\81true\r
+ * ç\9b´ç·\9aå¼\8fã\81\8cæ±\82ã\82\8bã\81¨trueã\82\92è¿\94ã\81\97ã\81¾ã\81\99ã\80\82\r
*/\r
public final boolean makeLinearWithNormalize(double x1,double y1,double x2,double y2)\r
{\r
\r
/**\r
* この関数は、指定サイズのオブジェクト配列を作ります。\r
- * @param i_number\r
+ * @param i_length\r
* 作成する配列の長さ\r
* @return\r
* 新しい配列。\r
/**\r
* この関数は、配列の内容を行列にセットします。\r
* 実装クラスでは、配列の内容をインスタンスにセットする処理を実装してください。\r
- * @param o_value\r
+ * @param i_value\r
* セットする配列。\r
*/\r
public void setValue(double[] i_value);\r
}\r
/**\r
* この関数は、現在の行列をX軸で回転します。\r
- * @param i_mat_r\r
+ * @param i_radian\r
* 回転量(radian)\r
*/\r
public final void rotateX(double i_radian)\r
}\r
/**\r
* この関数は、現在の行列をY軸で回転します。\r
- * @param i_mat_r\r
+ * @param i_radian\r
* 回転量(radian)\r
*/\r
public final void rotateY(double i_radian)\r
}\r
/**\r
* この関数は、現在の行列をZ軸で回転します。\r
- * @param i_mat_r\r
+ * @param i_radian\r
* 回転量(radian)\r
*/\r
public final void rotateZ(double i_radian)\r
{\r
/** オブジェクトの参照値を格納するバッファ*/\r
protected T[] _items;\r
- /** 配列の長さ。({@link #_items#length)とは異なることに注意してください。*/\r
+ /** 配列の有効な長さ。({@link #_items}の配列長とは異なることに注意してください。*/\r
protected int _length;\r
\r
/**\r
* 距離マップには行と列があります。列を基準値、行を比較値として、その距離値を格納します。\r
* 行と列の距離マップを作り終えたら、組合せを計算します。\r
* <ol>\r
- * <li>{@link setMapSize}関数で、マップサイズ(比較する頂点数)を設定する。\r
+ * <li>{@link #setMapSize}関数で、マップサイズ(比較する頂点数)を設定する。\r
* <li>{@link #setDist},または{@link #setPointDists}で、距離マップに全ての値を書き込む。\r
* <li>\r
* </ol>\r
/**\r
* この関数は、列と行を指定して、距離値1個をマップにセットします。\r
* <p>注意 -\r
- * このAPIは低速です。性能が必要な時は、{@link #setPointsDists}を参考に、一括書込みする関数を検討してください。\r
+ * このAPIは低速です。性能が必要な時は、{@link #setPointDists}を参考に、一括書込みする関数を検討してください。\r
* </p>\r
* @param i_col\r
* 列のインデクスを指定します。\r
}\r
/**\r
* オブジェクト要素から参照する操作インタフェイス。ユーザが使用することはありません。\r
- * @bug このスコープはprotectedではないか?\r
+ * <p>メモ - このスコープはprotectedではないか?</p>\r
*/\r
public Operator _op_interface=new Operator();\r
\r
* @param i_number_of_code\r
* i_codeの有効な個数を指定します。\r
* @param i_input_raster_type\r
- * {@link #detectMarkerLite}に入力するラスタのバッファフォーマットを指定します。\r
+ * {@link #detectMarkerLite}に入力するラスタの画素形式を指定します。\r
* この値は、{@link INyARRgbRaster#getBufferType}関数の戻り値を利用します。\r
* @throws NyARException\r
*/\r
* @param i_marker_width\r
* 正方形マーカの物理サイズをmm単位で指定します。\r
* @param i_input_raster_type\r
- * {@link #detectMarker}に入力するラスタのバッファフォーマットを指定します。\r
+ * {@link #detectMarker}に入力するラスタの画素形式を指定します。\r
* この値は、{@link INyARRgbRaster#getBufferType}関数の戻り値を利用します。\r
* @param i_profile_id\r
* 計算アルゴリズムの選択値です。以下の定数のいずれかを指定します。\r
* 関数は、画像の二値化、ラべリング、矩形検出、パターンの一致判定処理までを行い、画像中にある最も一致したパターンを持つ矩形の座標を、thisの\r
* プロパティへ保管します。\r
* @param i_raster\r
- * 検出元の画像を指定します。この画像は、コンストラクタで指定したものと同じサイズ、画素フォーマットに限られます。\r
+ * 検出元の画像を指定します。この画像は、コンストラクタで指定したものと同じサイズ、画素形式に限られます。\r
* @param i_threshold\r
* 二値化の敷居値を指定します。0<=n<256の間で指定します。\r
* @return\r
\r
/**\r
* このクラスは、ラスタ画像に定義したの任意矩形から、NyIdパターンのデータを読み取ります。\r
- * 読み取り結果は、{@link NyARIdMarkerData}クラスのオブジェクト出力します。\r
+ * 読み取り結果は、{@link NyIdMarkerPattern}クラスのオブジェクトに出力します。\r
*\r
*/\r
public class NyIdMarkerPickup\r
\r
\r
/**\r
- * {@link NyARColorPatt_NyIdMarker}がラスタからPerspective変換して読みだすためのクラス\r
+ * {@link NyIdMarkerPickup}がラスタからPerspective変換して読みだすためのクラス\r
* 画像処理全般を担当します。\r
* ユーザがこのクラスを使うことはありません。\r
*\r
/**\r
* この関数は、マーカパターンの一致率の敷居値を設定します。\r
* 敷居値は、0.0<n<1.0の範囲で指定します。\r
- * @param i_new_detect_cf\r
+ * @param i_new_cf\r
* 新しくマーカを発見するときの閾値です。\r
- * @param i_exist_detect_cf\r
+ * @param i_exist_cf\r
* 継続してマーカを追跡するときの閾値です。\r
- * i_new_detect_cfの6割程度の値を指定すると良いでしょう。\r
+ * i_new_cfの6割程度の値を指定すると良いでしょう。\r
*/\r
public void setConfidenceThreshold(double i_new_cf,double i_exist_cf)\r
{\r
* IDマーカの値エンコーダを指定します。\r
* @param i_marker_width\r
* マーカの物理縦横サイズをmm単位で指定します。\r
- * @param i_raster_type\r
- * {@link #detectMarker}関数に入力する画像の画素フォーマット。\r
+ * @param i_raster_format\r
+ * {@link #detectMarker}関数に入力する画像の画素形式。\r
* この値には、{@link INyARRgbRaster#getBufferType}関数の戻り値を利用します。\r
* @throws NyARException\r
*/\r
package jp.nyatla.nyartoolkit.utils;\r
\r
import jp.nyatla.nyartoolkit.NyARException;\r
-import jp.nyatla.nyartoolkit.core.param.NyARPerspectiveProjectionMatrix;\r
-import jp.nyatla.nyartoolkit.core.pickup.NyARColorPatt_Perspective_O2;\r
-import jp.nyatla.nyartoolkit.core.raster.rgb.INyARRgbRaster;\r
-import jp.nyatla.nyartoolkit.core.transmat.NyARTransMatResult;\r
-import jp.nyatla.nyartoolkit.core.types.NyARBufferType;\r
-import jp.nyatla.nyartoolkit.core.types.NyARIntPoint2d;\r
+import jp.nyatla.nyartoolkit.core.param.*;\r
+import jp.nyatla.nyartoolkit.core.pickup.*;\r
+import jp.nyatla.nyartoolkit.core.raster.rgb.*;\r
+import jp.nyatla.nyartoolkit.core.transmat.*;\r
+import jp.nyatla.nyartoolkit.core.types.*;\r
+import jp.nyatla.nyartoolkit.core.rasterreader.*;\r
\r
/**\r
* このクラスは、姿勢変換行列を使用してマーカの周辺領域からパターンを取得する機能を持つラスタです。\r
- * 画像の画素フォーマットは、{@link NyARBufferType#INT1D_X8R8G8B8_32}形式のです。\r
- * このクラスは試験的であり、異なる解像度のパターンを取得することや、異なる画素フォーマットへ画像を出力する事ができません。\r
+ * 画像の画素形式は、{@link NyARBufferType#INT1D_X8R8G8B8_32}形式のです。\r
+ * このクラスは試験的であり、異なる解像度のパターンを取得することや、異なる画素形式へ画像を出力する事ができません。\r
* {@link NyARPerspectiveRasterReader}クラスの使用を検討してください。\r
*/\r
class TransformedBitmapPickup extends NyARColorPatt_Perspective_O2\r