|
||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
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, 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
内の initInstance
parent
- i_width
- i_height
- i_cparam_file
- i_patt_resolution
- i_projection_coord_system
-
NyARException
public 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.core.PMatrix)
で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(processing.core.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
- 出力画像のピクセル高さです。
|
||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |