jp.nyatla.nyar4psg
クラス SingleARTKMarker

java.lang.Object
  上位を拡張 jp.nyatla.nyar4psg.SingleARTKMarker

public class SingleARTKMarker
extends java.lang.Object

このクラスは、1個のARToolKitマーカを認識することができます。 入力画像から、事前に登録したパターンに最も一致するマーカ1個を認識して、 その座標と認識したマーカの番号を出力します。
EN: -

作成者:
nyatla

フィールドの概要
 processing.core.PVector angle
          マーカのx,y,zの傾き角度です。
static int CS_LEFT
          LeftHand座標系であることを示します。
static int CS_RIGHT
          RightHand座標系であることを示します。
 int markerid
          検出したマーカのIDを示します。
 int[][] pos2d
          検出したマーカの4隅の2次元画像上の位置です。
 double[] projection
          OpenGLスタイルのProjectionMatrixです。
static int ST_NEWMARKER
          detectの返すステータス値です。
static int ST_NOMARKER
          detectの返すステータス値です。
static int ST_REMOVEMARKER
          detectの返すステータス値です。
static int ST_UPDATEMARKER
          detectの返すステータス値です。
 processing.core.PVector trans
          マーカのx,y,zの平行移動量です。
 double[] transmat
          検出したマーカの変換行列です。
 java.lang.String VERSION
          バージョン文字列です。
 
コンストラクタの概要
SingleARTKMarker(processing.core.PApplet parent, int i_width, int i_height, java.lang.String i_cparam, int i_projection_coord_system)
          インスタンスを作成します。
 
メソッドの概要
 void beginTransform(processing.opengl.PGraphicsOpenGL i_pgl)
          座標変換を実行したMatrixを準備します。
 int detect(processing.core.PImage i_image)
          画像から、マーカの認識処理を行い、プロパティを更新します。
 void endTransform()
          beginTransformによる座標変換を解除して元に戻します。
 void setARCodes(java.lang.String[] i_patt_names, int i_patt_size)
          複数のマーカを登録します。
 void setARCodes(java.lang.String i_patt_name, int i_patt_size)
          1個のマーカを登録します。
 void setConfidenceThreshold(double i_new_cf, double i_exist_cf)
          認識処理を行うマーカの一致度を指定します。
 
クラス java.lang.Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

ST_NOMARKER

public static final int ST_NOMARKER
detectの返すステータス値です。
EN: -

関連項目:
定数フィールド値

ST_NEWMARKER

public static final int ST_NEWMARKER
detectの返すステータス値です。
EN: -

関連項目:
定数フィールド値

ST_UPDATEMARKER

public static final int ST_UPDATEMARKER
detectの返すステータス値です。
EN: -

関連項目:
定数フィールド値

ST_REMOVEMARKER

public static final int ST_REMOVEMARKER
detectの返すステータス値です。
EN: -

関連項目:
定数フィールド値

markerid

public int markerid
検出したマーカのIDを示します。この値は、setARCodesで登録したマーカの0からはじまる 順番を返します。たとえば、マーカを1個しか登録しなかった場合、常に0となります。
EN: -


angle

public processing.core.PVector angle
マーカのx,y,zの傾き角度です。
EN: The angle value in radian unit of "x,y,z" .


trans

public processing.core.PVector trans
マーカのx,y,zの平行移動量です。
EN: The translation value in radian unit of "x,y,z".


pos2d

public int[][] pos2d
検出したマーカの4隅の2次元画像上の位置です。
EN: The position of 4 corner of marker.


transmat

public double[] transmat
検出したマーカの変換行列です。
EN: The transform matrix of detected marker.


CS_RIGHT

public static final int CS_RIGHT
RightHand座標系であることを示します。 この値はコンストラクタで使います。
EN: -

関連項目:
定数フィールド値

CS_LEFT

public static final int CS_LEFT
LeftHand座標系であることを示します。 この値はコンストラクタで使います。
EN: -

関連項目:
定数フィールド値

VERSION

public final java.lang.String VERSION
バージョン文字列です。
EN: version string.

関連項目:
定数フィールド値

projection

public final double[] projection
OpenGLスタイルのProjectionMatrixです。
EN: OpenGL form projection matrix.

コンストラクタの詳細

SingleARTKMarker

public SingleARTKMarker(processing.core.PApplet parent,
                        int i_width,
                        int i_height,
                        java.lang.String i_cparam,
                        int i_projection_coord_system)
インスタンスを作成します。
EN: -

パラメータ:
parent -
EN: -
i_width -
EN: -
i_height -
EN: -
i_cparam -
EN: -
i_projection_coord_system -
EN: -
メソッドの詳細

setARCodes

public void setARCodes(java.lang.String i_patt_name,
                       int i_patt_size)
1個のマーカを登録します。detect関数を呼び出す前に、1度だけ呼び出してください。
EN: -

パラメータ:
i_patt_name - マーカパターンの名前を指定します。マーカーのIDは、0になります。
EN: -
i_patt_size - マーカのサイズをmm単位で指定します。
EN: -

setARCodes

public void setARCodes(java.lang.String[] i_patt_names,
                       int i_patt_size)
複数のマーカを登録します。detect関数を呼び出す前に、1度だけ呼び出してください。
EN: -

パラメータ:
i_patt_names - マーカパターンの名前配列を指定します。配列の先頭から、マーカーのIDは、0,1,2...の順になります。
EN: -
i_patt_size - マーカのサイズをmm単位で指定します。
EN: -

setConfidenceThreshold

public void setConfidenceThreshold(double i_new_cf,
                                   double i_exist_cf)
認識処理を行うマーカの一致度を指定します。
EN: -

パラメータ:
i_new_cf - 初めてマーカを認識するときの敷居値を指定します。値範囲は、0<<n<100です。
EN: -
i_exist_cf - 連続してマーカを認識するときの敷居値を指定します。値範囲は、0<<n<100です。 i_new_cfより低い値を指定してください。
EN: -

detect

public int detect(processing.core.PImage i_image)
画像から、マーカの認識処理を行い、プロパティを更新します。 認識処理の結果は、戻り値にステータスコードで格納します。
EN: -

パラメータ:
i_image -
EN: -
戻り値:
ステータスコードを返します。
 ST_NOMARKER:
 マーカが認識されていない事を示します。
 マーカパラメータのメンバ変数は使用不可能です。
 
 ST_NEWMARKER:
 マーカが発見された事を示します。
 transmat,angle,trans,markeridメンバ変数が利用可能です。
 
 ST_UPDATEMARKER:
 マーカ座標が更新されたことを示します。
 transmat,angle,trans,markeridメンバ変数が利用可能です。
 
 ST_REMOVEMARKER:
 マーカが消失したことを示します。
 マーカパラメータのメンバ変数は使用不可能です。
 

EN: -

beginTransform

public void beginTransform(processing.opengl.PGraphicsOpenGL i_pgl)
座標変換を実行したMatrixを準備します。 この関数を実行すると、processingの座標系がマーカ表面に設定されます。 描画終了後には、必ずendTransform関数を呼び出して座標系を戻してください。
EN: This function sets corresponding transform matrix to the surface of the marker to OpenGL. The coordinate system of processing moves to the surface of the marker when this function is executed. Must return the coordinate system by using endTransform function at the end.

パラメータ:
i_pgl - PGraphicsOpenGLインスタンスを設定します。processingのgメンバをキャストして設定してください。
EN: Specify PGraphicsOpenGL instance. Set cast "g" member of processing graphics object.

endTransform

public void endTransform()
beginTransformによる座標変換を解除して元に戻します。
EN: This function recover coordinate system that was changed by beginTransform function.