Packagejp.nyatla.nyartoolkit.as3.detector
Classpublic class NyARDetectMarker
InheritanceNyARDetectMarker Inheritance Object

複数のマーカーを検出し、それぞれに最も一致するARコードを、コンストラクタで登録したARコードから 探すクラスです。最大300個を認識しますが、ゴミラベルを認識したりするので100個程度が限界です。



Protected Properties
 PropertyDefined By
  _transmat : INyARTransMat
NyARDetectMarker
Public Methods
 MethodDefined By
  
NyARDetectMarker(i_param:NyARParam, i_code:Vector.<NyARCode>, i_marker_width:Vector.<Number>, i_number_of_code:int, i_input_raster_type:int)
複数のマーカーを検出し、最も一致するARCodeをi_codeから検索するオブジェクトを作ります。
NyARDetectMarker
  
detectMarkerLite(i_raster:INyARRgbRaster, i_threshold:int):int
i_imageにマーカー検出処理を実行し、結果を記録します。
NyARDetectMarker
  
getARCodeIndex(i_index:int):int
i_indexのマーカーのARCodeインデックスを返します。
NyARDetectMarker
  
getConfidence(i_index:int):Number
i_indexのマーカーの一致度を返します。
NyARDetectMarker
  
getTransmationMatrix(i_index:int, o_result:NyARTransMatResult):void
i_indexのマーカーに対する変換行列を計算し、結果値をo_resultへ格納します。 直前に実行したdetectMarkerLiteが成功していないと使えません。
NyARDetectMarker
  
setContinueMode(i_is_continue:Boolean):void
getTransmationMatrixの計算モードを設定します。
NyARDetectMarker
Protected Methods
 MethodDefined By
  
initInstance(i_ref_param:NyARParam, i_ref_code:Vector.<NyARCode>, i_marker_width:Vector.<Number>, i_number_of_code:int, i_input_raster_type:int):void
NyARDetectMarker
Public Constants
 ConstantDefined By
  AR_SQUARE_MAX : int = 300
[static]
NyARDetectMarker
Property Detail
_transmatproperty
protected var _transmat:INyARTransMat

Constructor Detail
NyARDetectMarker()Constructor
public function NyARDetectMarker(i_param:NyARParam, i_code:Vector.<NyARCode>, i_marker_width:Vector.<Number>, i_number_of_code:int, i_input_raster_type:int)

複数のマーカーを検出し、最も一致するARCodeをi_codeから検索するオブジェクトを作ります。

Parameters
i_param:NyARParam — カメラパラメータを指定します。
 
i_code:Vector.<NyARCode> — 検出するマーカーのARCode配列を指定します。 配列要素のインデックス番号が、そのままgetARCodeIndex関数で得られるARCodeインデックスになります。 例えば、要素[1]のARCodeに一致したマーカーである場合は、getARCodeIndexは1を返します。
 
i_marker_width:Vector.<Number> — i_codeのマーカーサイズをミリメートルで指定した配列を指定します。 先頭からi_number_of_code個の要素には、有効な値を指定する必要があります。
 
i_number_of_code:int — i_codeに含まれる、ARCodeの数を指定します。
 
i_input_raster_type:int — 入力ラスタのピクセルタイプを指定します。この値は、INyARBufferReaderインタフェイスのgetBufferTypeの戻り値を指定します。

Throws
NyARException
Method Detail
detectMarkerLite()method
public function detectMarkerLite(i_raster:INyARRgbRaster, i_threshold:int):int

i_imageにマーカー検出処理を実行し、結果を記録します。

Parameters

i_raster:INyARRgbRaster — マーカーを検出するイメージを指定します。
 
i_threshold:int — 検出閾値を指定します。0~255の範囲で指定してください。 通常は100~130くらいを指定します。

Returns
int — 見つかったマーカーの数を返します。 マーカーが見つからない場合は0を返します。

Throws
NyARException
getARCodeIndex()method 
public function getARCodeIndex(i_index:int):int

i_indexのマーカーのARCodeインデックスを返します。

Parameters

i_index:int — マーカーのインデックス番号を指定します。 直前に実行したdetectMarkerLiteの戻り値未満かつ0以上である必要があります。

Returns
int
getConfidence()method 
public function getConfidence(i_index:int):Number

i_indexのマーカーの一致度を返します。

Parameters

i_index:int — マーカーのインデックス番号を指定します。 直前に実行したdetectMarkerLiteの戻り値未満かつ0以上である必要があります。

Returns
Number — マーカーの一致度を返します。0~1までの値をとります。 一致度が低い場合には、誤認識の可能性が高くなります。

Throws
NyARException
getTransmationMatrix()method 
public function getTransmationMatrix(i_index:int, o_result:NyARTransMatResult):void

i_indexのマーカーに対する変換行列を計算し、結果値をo_resultへ格納します。 直前に実行したdetectMarkerLiteが成功していないと使えません。

Parameters

i_index:int — マーカーのインデックス番号を指定します。 直前に実行したdetectMarkerLiteの戻り値未満かつ0以上である必要があります。
 
o_result:NyARTransMatResult — 結果値を受け取るオブジェクトを指定してください。


Throws
NyARException
initInstance()method 
protected function initInstance(i_ref_param:NyARParam, i_ref_code:Vector.<NyARCode>, i_marker_width:Vector.<Number>, i_number_of_code:int, i_input_raster_type:int):void

Parameters

i_ref_param:NyARParam
 
i_ref_code:Vector.<NyARCode>
 
i_marker_width:Vector.<Number>
 
i_number_of_code:int
 
i_input_raster_type:int

setContinueMode()method 
public function setContinueMode(i_is_continue:Boolean):void

getTransmationMatrixの計算モードを設定します。

Parameters

i_is_continue:Boolean — TRUEなら、transMatContinueを使用します。 FALSEなら、transMatを使用します。

Constant Detail
AR_SQUARE_MAXConstant
public static const AR_SQUARE_MAX:int = 300