/** * この関数は、画像から登録済のマーカ検出を行います。 * マーカの検出に成功すると、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); }
/** * この関数は、画像から登録済のマーカ検出を行います。 * マーカの検出に成功すると、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); }
/** * この関数は、画像からマーカを検出します。 * 関数は、登録されているマーカパターンそれぞれに対し、検出したマーカから最も一致した物を探し、その一致率と位置を計算します。 * @param i_raster * マーカーを検出するイメージを指定します。 * @param i_threshold * 検出閾値を指定します。0~255の範囲で指定してください。 通常は100~130くらいを指定します。 * @return * 検出したマーカーの数を返します。 マーカーが見つからない場合は0を返します。 * @ */ public int detectMarkerLite(INyARRgbRaster i_raster, int i_threshold) { // サイズチェック if (!this._bin_raster.getSize().isEqualSize(i_raster.getSize())) { throw new NyARException(); } if (this._last_input_raster != i_raster) { this._tobin_filter = (INyARRgb2GsFilterArtkTh)i_raster.createInterface(typeof(INyARRgb2GsFilterArtkTh)); this._last_input_raster = i_raster; } this._tobin_filter.doFilter(i_threshold, this._bin_raster); //detect this._square_detect.init(i_raster); this._square_detect.detectMarker(this._bin_raster, 0, this._square_detect); //見付かった数を返す。 return(this._square_detect.result_stack.getLength()); }
/** * この関数は、画像から登録済のマーカ検出を行います。 * マーカの検出に成功すると、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; }
/** * この関数は、画像から登録済のマーカ検出を行います。 * マーカの検出に成功すると、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; }