|
||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||
java.lang.Objectjp.nyatla.nyar4psg.NyARPsgBaseClass
jp.nyatla.nyar4psg.MultiMarker
public class MultiMarker
このクラスは、複数のマーカに対応したARToolKit管理クラスです。 1映像中に異なる複数のマーカのあるユースケースで動作します。 入力画像はPImage形式です。
| フィールドの概要 | |
|---|---|
static double |
DEFAULT_CF_THRESHOLD
初期値定数。 |
static int |
DEFAULT_LOST_DELAY
初期値定数。 |
static int |
THLESHOLD_AUTO
敷居値の定数です。 |
| クラス jp.nyatla.nyar4psg.NyARPsgBaseClass から継承されたフィールド |
|---|
_ar_param, _config, _frustum, _preader, _ps_background_mv, _ps_projection, _ref_papplet, _src_raster, FRUSTUM_DEFAULT_FAR_CLIP, FRUSTUM_DEFAULT_NEAR_CLIP, VERSION |
| コンストラクタの概要 | |
|---|---|
MultiMarker(PApplet parent,
int i_width,
int i_height,
String i_cparam_file)
コンストラクタです。 |
|
MultiMarker(PApplet parent,
int i_width,
int i_height,
String i_cparam_file,
NyAR4PsgConfig i_config)
コンストラクタです。 |
|
| メソッドの概要 | |
|---|---|
int |
addARMarker(String i_file_name,
float i_width)
この関数は、ARToolKitスタイルのマーカーをファイルから読みだして、登録します。 |
int |
addARMarker(String i_file_name,
int i_patt_resolution,
float i_width)
この関数は、ARToolKitスタイルのマーカーをファイルから読みだして、登録します。 |
int |
addARMarker(String i_file_name,
int i_patt_resolution,
int i_edge_percentage,
float i_width)
この関数は、ARToolKitスタイルのマーカーをファイルから読みだして、登録します。 |
int |
addNyIdMarker(int i_nyid,
int i_width)
この関数は、NyIdマーカを追加します。 |
int |
addNyIdMarker(int i_nyid_range_s,
int i_nyid_range_e,
int i_width)
この関数は、NyIdマーカを範囲指定で追加します。 |
void |
beginTransform(int i_id)
この関数は、ProcessingのProjectionMatrixとModelview行列を、指定idのマーカ平面にセットします。 |
void |
detect(PImage i_image)
この関数は、画像からマーカーの検出処理を実行します。 |
void |
endTransform()
この関数は、 beginTransform(int)でセットしたProjectionとModelViewを元に戻します。 |
double |
getConfidence(int i_id)
この関数は、指定idのARマーカパターンの一致率を返します。 |
int |
getCurrentThreshold()
この関数は、現在の二値化敷居値を返します。 |
long |
getLife(int i_id)
この関数は、指定idのマーカのライフ値を返します。 |
int |
getLostCount(int i_id)
この関数は、指定idのマーカの認識状態を返します。 |
PMatrix3D |
getMarkerMatrix(int i_id)
この関数は、マーカの姿勢行列を返します。 |
PVector[] |
getMarkerVertex2D(int i_id)
この関数は、マーカのスクリーン上の4頂点を返します。 |
long |
getNyId(int i_id)
この関数は、指定idのNyIdマーカから、現在のマーカIdを取得します。 |
protected void |
initInstance(PApplet parent,
String i_cparam_file,
int i_width,
int i_height,
NyAR4PsgConfig i_config)
インスタンスを初期化します。 |
boolean |
isExistMarker(int i_id)
この関数は、指定idのマーカが有効かを返します。 |
PImage |
pickupMarkerImage(int i_id,
int i_x1,
int i_y1,
int i_x2,
int i_y2,
int i_x3,
int i_y3,
int i_x4,
int i_y4,
int i_out_w_pix,
int i_out_h_pix)
この関数は、idで指定したマーカの画像のXY平面上の4頂点でかこまれた領域から、画像を取得します。 |
PImage |
pickupRectMarkerImage(int i_id,
int i_l,
int i_t,
int i_w,
int i_h,
int i_out_w_pix,
int i_out_h_pix)
この関数は、idで指定したマーカのXY平面上の矩形領域から、画像を取得します。 |
PVector |
screen2MarkerCoordSystem(int i_id,
int i_x,
int i_y)
この関数は、スクリーン座標を、idで指定したマーカ平面座標へ変換して返します。 |
void |
setConfidenceThreshold(double i_val)
この関数は、ARマーカパターン一致率の閾値を設定します。 |
void |
setLostDelay(int i_val)
この関数は、マーカ消失時の遅延数を設定します。 |
void |
setThreshold(int i_th)
この関数は、画像2値化の敷居値を設定します。 |
| クラス jp.nyatla.nyar4psg.NyARPsgBaseClass から継承されたメソッド |
|---|
drawBackground, getProjectionMatrix, matResult2GLArray, matResult2PMatrix3D, pickupMarkerImage, PMatrix2GLProjection, PMatrix2GLProjection, screen2MarkerCoordSystem, setARClipping, setARPerspective, setBackgroundOrtho, setPerspective |
| クラス java.lang.Object から継承されたメソッド |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| フィールドの詳細 |
|---|
public static final double DEFAULT_CF_THRESHOLD
public static final int DEFAULT_LOST_DELAY
public static final int THLESHOLD_AUTO
| コンストラクタの詳細 |
|---|
public MultiMarker(PApplet parent,
int i_width,
int i_height,
String i_cparam_file,
NyAR4PsgConfig i_config)
parent - 親となるAppletオブジェクトを指定します。このOpenGLのレンダリングシステムを持つAppletである必要があります。i_cparam_file - ARToolKitフォーマットのカメラパラメータファイルの名前を指定します。i_width - 入力画像の横解像度を指定します。通常、キャプチャ画像のサイズを指定します。i_height - 入力画像の横解像度を指定します。通常、キャプチャ画像のサイズを指定します。i_config - コンフィギュレーションオブジェクトを指定します。
NyARException
public MultiMarker(PApplet parent,
int i_width,
int i_height,
String i_cparam_file)
MultiMarker(PApplet, int, int, String, NyAR4PsgConfig)のコンフィギュレーションに、NyAR4PsgConfig.CONFIG_DEFAULTを指定した物と同じです。
parent - MultiMarker(PApplet, int, int, String, NyAR4PsgConfig)を参照。i_width - 入力画像の横解像度を指定します。通常、キャプチャ画像のサイズを指定します。i_height - 入力画像の横解像度を指定します。通常、キャプチャ画像のサイズを指定します。i_cparam_file - MultiMarker(PApplet, int, int, String, NyAR4PsgConfig)を参照。
NyARException| メソッドの詳細 |
|---|
public void setConfidenceThreshold(double i_val)
DEFAULT_CF_THRESHOLDです。
i_val - 設定する値。0.0<n<1.0の値を設定します。public void setLostDelay(int i_val)
DEFAULT_LOST_DELAYです。
i_val - 設定する値。1以上の数値が必要です。public void setThreshold(int i_th)
THLESHOLD_AUTOです。
i_th - 固定式位置を指定する場合は、0<n<256の値を指定します。
固定式位置以外に、次の自動敷居値を利用できます。
THLESHOLD_AUTO - 敷居値決定に#NyARRasterThresholdAnalyzer_SlidePTileを使います。パラメータは15%、スキップ値は、入力画像/80です。
public int getCurrentThreshold()
protected void initInstance(PApplet parent,
String i_cparam_file,
int i_width,
int i_height,
NyAR4PsgConfig i_config)
throws NyARException
NyARPsgBaseClass 内の initInstanceparent - i_width - i_height - i_cparam_file - i_patt_resolution - i_projection_coord_system -
NyARExceptionpublic void beginTransform(int i_id)
endTransform()とペアで使います。
関数を実行すると、現在のModelView行列とProjection行列がインスタンスに保存され、新しい行列がセットされます。
これらを復帰するには、endTransform()を使います。
復帰するまでの間は、再度beginTransform(int)を使うことはできません。
i_id - マーカidを指定します。public void endTransform()
beginTransform(int)でセットしたProjectionとModelViewを元に戻します。
この関数は、必ずbeginTransform(int)とペアで使います。
public void detect(PImage i_image)
i_image - 検出処理を行う画像を指定します。
public int addARMarker(String i_file_name,
int i_patt_resolution,
int i_edge_percentage,
float i_width)
i_file_name - マーカパターンファイル名を指定します。i_patt_resolution - マーカパターンの解像度を指定します。i_edge_percentage - マーカのエッジ幅を割合で指定します。
0<n<50の数値です。i_width - マーカの物理サイズをmm単位で指定します。
addARMarker(java.lang.String, int, int, float)とaddNyIdMarker(int, int)関数を呼ぶたびにインクリメントされます。
getMarkerMatrix(int),getConfidence(int),isExistMarker(int),addARMarker(java.lang.String, int, int, float),
screen2MarkerCoordSystem(int, int, int),pickupMarkerImage(int, int, int, int, int, int, int, int, int, int, int),pickupRectMarkerImage(int, int, int, int, int, int, int)
のid値に使います。
public int addARMarker(String i_file_name,
int i_patt_resolution,
float i_width)
i_file_name - #addARMarker(String, int, int, double)を参照。i_patt_resolution - #addARMarker(String, int, int, double)を参照。i_width - #addARMarker(String, int, int, double)を参照。
#addARMarker(String, int, int, double)を参照。
public int addARMarker(String i_file_name,
float i_width)
i_file_name - #addARMarker(String, int, int, double)を参照。i_width - #addARMarker(String, int, int, double)を参照。
#addARMarker(String, int, int, double)を参照。
public int addNyIdMarker(int i_nyid,
int i_width)
i_nyid - NyIdを指定します。範囲は、0から33554431です。512以上の数値はmodel3のマーカが必要になるので、特に大量のマーカが必要でなければ512までの値にしてください。i_width - マーカの物理サイズをmm単位で指定します。
addARMarker(java.lang.String, int, int, float)とaddNyIdMarker(int, int)関数を呼ぶたびにインクリメントされます。
public int addNyIdMarker(int i_nyid_range_s,
int i_nyid_range_e,
int i_width)
getNyId(int)で知ることができます。
範囲が重なるidを登録した場合には、最後に登録したidを優先して認識します。
i_nyid_s - NyIdの範囲開始値を指定します。範囲は、addNyIdMarker(int, int)を参照してください。i_nyid_e - NyIdの範囲終了値を指定します。
i_nyid_s<=i_nyid_eの関係を満たす値を設定します。i_width - マーカの物理サイズをmm単位で指定します。
addARMarker(java.lang.String, int, int, float)とaddNyIdMarker(int, int)関数を呼ぶたびにインクリメントされます。public PVector[] getMarkerVertex2D(int i_id)
public PMatrix3D getMarkerMatrix(int i_id)
PApplet#setMatrixでProcessingにセットできます。
i_armk_id - マーカidを指定します。
public double getConfidence(int i_id)
i_id - マーカidを指定します。addARMarker(java.lang.String, int, int, float)で登録したidである必要があります。
getLostCount(int)の時だけ正しい値を返します。それ以外の時には、0を返します。public long getNyId(int i_id)
i_id - マーカidを指定します。addNyIdMarker(int, int)で登録したidである必要があります。
public boolean isExistMarker(int i_id)
i_id - マーカidを指定します。
public int getLostCount(int i_id)
i_id - マーカidを指定します。
setLostDelay(int)で設定した範囲の値を返します。public long getLife(int i_id)
i_id - マーカidを指定します。
public PVector screen2MarkerCoordSystem(int i_id,
int i_x,
int i_y)
i_id - マーカidを指定します。i_x - スクリーン座標を指定します。i_y - スクリーン座標を指定します。
public PImage pickupMarkerImage(int i_id,
int i_x1,
int i_y1,
int i_x2,
int i_y2,
int i_x3,
int i_y3,
int i_x4,
int i_y4,
int i_out_w_pix,
int i_out_h_pix)
detect(PImage)関数に入力した画像を使います。
座標点は、[mm]単位です。出力解像度はo_outの解像度に伸縮します。
座標点の指定順序は、右手系#CS_RIGHT_HANDなら右上から反時計回りです。
座標点の指定順序は、左手系#CS_LEFT_HANDなら左上から時計回りです。
i_id - マーカIdを指定します。i_x1 - 頂点座標1です。i_y1 - 頂点座標1です。i_x2 - 頂点座標2です。i_y2 - 頂点座標2です。i_x3 - 頂点座標3です。i_y3 - 頂点座標3です。i_x4 - 頂点座標4です。i_y4 - 頂点座標4です。i_out_w_pix - 出力画像のピクセル幅です。i_out_h_pix - 出力画像のピクセル高さです。
public PImage pickupRectMarkerImage(int i_id,
int i_l,
int i_t,
int i_w,
int i_h,
int i_out_w_pix,
int i_out_h_pix)
i_id - 画像を指定します。i_l - 左上の点を指定します。i_t - 左上の点を指定します。i_w - 矩形の幅を指定します。i_h - 矩形の高さを指定します。i_out_w_pix - 出力画像のピクセル幅です。i_out_h_pix - 出力画像のピクセル高さです。
|
||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||