本文整理汇总了C#中INyARRgbRaster.createInterface方法的典型用法代码示例。如果您正苦于以下问题:C# INyARRgbRaster.createInterface方法的具体用法?C# INyARRgbRaster.createInterface怎么用?C# INyARRgbRaster.createInterface使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类INyARRgbRaster
的用法示例。
在下文中一共展示了INyARRgbRaster.createInterface方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: detectMarkerLite
/**
* この関数は、画像から登録済のマーカ検出を行います。
* マーカの検出に成功すると、thisのプロパティにマーカの二次元位置を記録します。
* 関数の成功後は、マーカの姿勢行列と、一致度を、それぞれ{@link #getTransmationMatrix}と{@link #getConfidence}から得ることができます。
* @param i_raster
* マーカーを検出する画像。画像のサイズは、コンストラクタに指定した{@link NyARParam}オブジェクトと一致していなければなりません。
* @param i_th
* 2値化敷居値。0から256までの値を指定します。
* @return
* マーカーが検出できたかを、真偽値で返します。
* @
*/
public bool detectMarkerLite(INyARRgbRaster i_raster, int i_th)
{
//サイズチェック
if (!this._bin_raster.getSize().isEqualSize(i_raster.getSize())) { throw new NyARException(); }
//最終入力ラスタを更新
if (this._last_input_raster != i_raster) {
this._bin_filter = (INyARRgb2GsFilterArtkTh)i_raster.createInterface(typeof(INyARRgb2GsFilterArtkTh));
this._last_input_raster = i_raster;
}
//ラスタを2値イメージに変換する.
this._bin_filter.doFilter(i_th, this._bin_raster);
//コールバックハンドラの準備
this._confidence = 0;
this._last_input_raster = i_raster;
//
//マーカ検出器をコール
this.execDetectMarker();
if (this._confidence == 0) { return false; }
return true;
}
示例2: detectMarker
/**
* この関数は、画像を処理して、適切なマーカ検出イベントハンドラを呼び出します。
* イベントハンドラの呼び出しは、この関数を呼び出したスレッドが、この関数が終了するまでに行います。
* @param i_raster
* 検出処理をする画像を指定します。
* @
*/
public void detectMarker(INyARRgbRaster i_raster)
{
// サイズチェック
Debug.Assert(this._gs_raster.getSize().isEqualSize(i_raster.getSize().w, i_raster.getSize().h));
if (this._last_input_raster != i_raster)
{
this._histmaker = (INyARHistogramFromRaster)this._gs_raster.createInterface(typeof(INyARHistogramFromRaster));
this._togs_filter = (INyARRgb2GsFilter)i_raster.createInterface(typeof(INyARRgb2GsFilter));
this._last_input_raster = i_raster;
}
//GSイメージへの変換とヒストグラムの生成
this._togs_filter.convert(this._gs_raster);
this._histmaker.createHistogram(4, this._hist);
// スクエアコードを探す
this._detectmarker.init(i_raster, this._current_arcode_index);
this._detectmarker.detectMarker(this._gs_raster, this._thdetect.getThreshold(this._hist),this._detectmarker);
// 認識状態を更新
this.updateStatus(this._detectmarker.square, this._detectmarker.code_index);
return;
}
示例3: update
/**
* この関数は、入力画像を元に、インスタンスの状態を更新します。
* この関数は、タイムスタンプをインクリメントします。
* @param i_input
* @
*/
public virtual void update(INyARRgbRaster i_input)
{
//ラスタドライバの準備
if (this._ref_raster != i_input)
{
this._rgb2gs = (INyARRgb2GsFilter)i_input.createInterface(typeof(INyARRgb2GsFilter));
this._pcopy = (INyARPerspectiveCopy)i_input.createInterface(typeof(INyARPerspectiveCopy));
this._ref_raster = i_input;
}
//ソースidのインクリメント
this._src_ts++;
}
示例4: detectMarker
/**
* この関数は、画像を処理して、適切なマーカ検出イベントハンドラを呼び出します。
* イベントハンドラの呼び出しは、この関数を呼び出したスレッドが、この関数が終了するまでに行います。
* @param i_raster
* 検出処理をする画像を指定します。
* @
*/
public void detectMarker(INyARRgbRaster i_raster)
{
// サイズチェック
if (!this._gs_raster.getSize().isEqualSize(i_raster.getSize().w, i_raster.getSize().h))
{
throw new NyARException();
}
// ラスタをGSへ変換する。
if (this._last_input_raster != i_raster)
{
this._togs_filter = (INyARRgb2GsFilter)i_raster.createInterface(typeof(INyARRgb2GsFilter));
this._last_input_raster = i_raster;
}
this._togs_filter.convert(this._gs_raster);
// スクエアコードを探す(第二引数に指定したマーカ、もしくは新しいマーカを探す。)
this._square_detect.init(this._gs_raster, this._is_active ? this._data_current : null);
this._square_detect.detectMarker(this._gs_raster, this._current_threshold, this._square_detect);
// 認識状態を更新(マーカを発見したなら、current_dataを渡すかんじ)
bool is_id_found = updateStatus(this._square_detect.square, this._square_detect.marker_data);
//閾値フィードバック(detectExistMarkerにもあるよ)
if (is_id_found)
{
//マーカがあれば、マーカの周辺閾値を反映
this._current_threshold = (this._current_threshold + this._square_detect.threshold) / 2;
}
else
{
//マーカがなければ、探索+DualPTailで基準輝度検索
this._histmaker.createHistogram(4, this._hist);
int th = this._threshold_detect.getThreshold(this._hist);
this._current_threshold = (this._current_threshold + th) / 2;
}
return;
}
示例5: pickFromRaster
/**
* この関数は、ラスタのi_vertexsで定義される四角形からパターンを取得して、インスタンスに格納します。
*/
public bool pickFromRaster(INyARRgbRaster image, NyARIntPoint2d[] i_vertexs)
{
if (this._last_input_raster != image)
{
this._raster_driver = (INyARPerspectiveCopy)image.createInterface(typeof(INyARPerspectiveCopy));
this._last_input_raster = image;
}
//遠近法のパラメータを計算
return this._raster_driver.copyPatt(i_vertexs, this._edge.x, this._edge.y, this._sample_per_pixel, this);
}
示例6: setRaster
/**
* この関数は、ラスタから差分画像を生成して、インスタンスに格納します。
* @param i_raster
* 差分画像の元画像。サイズは、このインスタンスと同じである必要があります。
* {@link NyARBufferType#INT1D_X8R8G8B8_32}形式のバッファを持つラスタの場合、他の形式よりも
* 何倍か高速に動作します。
*/
public void setRaster(INyARRgbRaster i_raster)
{
//ドライバの生成
if (this._last_input_raster != i_raster)
{
this._last_drv = (IRasterDriver)i_raster.createInterface(typeof(IRasterDriver));
this._last_input_raster = i_raster;
}
this._pow = this._last_drv.makeColorData(this._data);
return;
}
示例7: addARMarker
/**
* この関数は、画像からARマーカパターンを生成して、登録します。
* ビットマップ等の画像から生成したパターンは、撮影画像から生成したパターンファイルと比較して、撮影画像の色調変化に弱くなります。
* 注意してください。
* @param i_raster
* マーカ画像を格納したラスタオブジェクト
* @param i_patt_resolution
* マーカの解像度
* @param i_patt_edge_percentage
* マーカのエッジ領域のサイズ。マーカパターンは、i_rasterからエッジ領域を除いたパターンから生成します。
* ARToolKitスタイルの画像を用いる場合は、25を指定します。
* @param i_marker_size
* マーカの平方サイズ[mm]
* @return
* マーカID(ハンドル)値。
* @throws NyARException
*/
public int addARMarker(INyARRgbRaster i_raster,int i_patt_resolution,int i_patt_edge_percentage,double i_marker_size)
{
NyARCode c=new NyARCode(i_patt_resolution,i_patt_resolution);
NyARIntSize s=i_raster.getSize();
//ラスタからマーカパターンを切り出す。
INyARPerspectiveCopy pc=(INyARPerspectiveCopy)i_raster.createInterface(typeof(INyARPerspectiveCopy));
NyARRgbRaster tr=new NyARRgbRaster(i_patt_resolution,i_patt_resolution);
pc.copyPatt(0,0,s.w,0,s.w,s.h,0,s.h,i_patt_edge_percentage, i_patt_edge_percentage,4, tr);
//切り出したパターンをセット
c.setRaster(tr);
return this.addARMarker(c,i_patt_edge_percentage,i_marker_size);
}
示例8: detectMarkerLite
/**
* この関数は、画像から登録済のマーカ検出を行います。
* マーカの検出に成功すると、thisのプロパティにマーカの二次元位置を記録します。
* 関数の成功後は、マーカの姿勢行列と、一致度を、それぞれ{@link #getTransmationMatrix}と{@link #getConfidence}から得ることができます。
* @param i_raster
* マーカーを検出する画像。画像のサイズは、コンストラクタに指定した{@link NyARParam}オブジェクトと一致していなければなりません。
* @param i_th
* 2値化敷居値。0から256までの値を指定します。
* @return
* マーカーが検出できたかを、真偽値で返します。
* @
*/
public bool detectMarkerLite(INyARRgbRaster i_raster, int i_th)
{
NyARIntSize size1, size2;
size1 = _bin_raster.getSize();
size2 = i_raster.getSize();
//System.Windows.Forms.MessageBox.Show(" bin: w " + size1.w.ToString() + " h " + size1.h.ToString() +
// "\nraster: w " + size2.w.ToString() + " h " + size2.h.ToString());
//サイズチェック
if (!this._bin_raster.getSize().isEqualSize(i_raster.getSize()))
{
throw new NyARException();
}
//最終入力ラスタを更新
if (this._last_input_raster != i_raster)
{
this._bin_filter = (INyARRgb2GsFilterArtkTh)i_raster.createInterface(typeof(INyARRgb2GsFilterArtkTh));
this._last_input_raster = i_raster;
}
//ラスタを2値イメージに変換する.
this._bin_filter.doFilter(i_th, this._bin_raster);
//コールバックハンドラの準備
this._confidence = 0;
this._last_input_raster = i_raster;
//
//マーカ検出器をコール
this.execDetectMarker();
if (this._confidence == 0)
{
return false;
}
return true;
}
示例9: update
/**
* Based on the input image, this function updates the status of the instance.
* This function increments the time stamp.
* @param i_input
* @
*/
public virtual void update(INyARRgbRaster i_input)
{
//Preparation of raster driver
if (this._ref_raster != i_input)
{
this._rgb2gs = (INyARRgb2GsFilter)i_input.createInterface(typeof(INyARRgb2GsFilter));
this._pcopy = (INyARPerspectiveCopy)i_input.createInterface(typeof(INyARPerspectiveCopy));
this._ref_raster = i_input;
}
//Increment of the source id
this._src_ts++;
}