本文整理汇总了C#中INyARRgbRaster.getSize方法的典型用法代码示例。如果您正苦于以下问题:C# INyARRgbRaster.getSize方法的具体用法?C# INyARRgbRaster.getSize怎么用?C# INyARRgbRaster.getSize使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类INyARRgbRaster
的用法示例。
在下文中一共展示了INyARRgbRaster.getSize方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: drawBackground
/// <summary>
/// バックグラウンドにラスタを描画します。
/// </summary>
/// <param name="i_gl"></param>
/// <param name="i_bg_image"></param>
public void drawBackground(Device i_dev, INyARRgbRaster i_bg_image)
{
NyARIntSize s = i_bg_image.getSize();
if(this._surface==null){
this._surface = new NyARD3dSurface(i_dev,s.w,s.h);
}else if(!this._surface.isEqualSize(i_bg_image.getSize())){
//サーフェイスの再構築
this._surface.Dispose();
this._surface = new NyARD3dSurface(i_dev, this._screen_size.w, this._screen_size.h);
}
this._surface.setRaster(i_bg_image);
Surface dest_surface = i_dev.GetBackBuffer(0, 0, BackBufferType.Mono);
Rectangle rect = new Rectangle(0, 0, this._screen_size.w, this._screen_size.h);
i_dev.StretchRectangle((Surface)this._surface, rect, dest_surface, rect, TextureFilter.None);
}
示例2: doFilter
public void doFilter(INyARRgbRaster i_input, NyARBinRaster i_output)
{
Debug.Assert(i_input.getSize().isEqualSize(i_output.getSize()) == true);
this._do_threshold_impl.doThFilter(i_input, i_output, i_output.getSize());
return;
}
示例3: copyPatt
public bool copyPatt(double i_x1, double i_y1, double i_x2, double i_y2, double i_x3, double i_y3, double i_x4, double i_y4, int i_edge_x, int i_edge_y, int i_resolution, INyARRgbRaster i_out)
{
NyARIntSize out_size = i_out.getSize();
int xe = out_size.w * i_edge_x / 50;
int ye = out_size.h * i_edge_y / 50;
//サンプリング解像度で分岐
if (i_resolution == 1)
{
if (!this._perspective_gen.getParam((xe * 2 + out_size.w), (ye * 2 + out_size.h), i_x1, i_y1, i_x2, i_y2, i_x3, i_y3, i_x4, i_y4, this.__pickFromRaster_cpara))
{
return false;
}
this.onePixel(xe + LOCAL_LT, ye + LOCAL_LT, this.__pickFromRaster_cpara, i_out);
}
else
{
if (!this._perspective_gen.getParam((xe * 2 + out_size.w) * i_resolution, (ye * 2 + out_size.h) * i_resolution, i_x1, i_y1, i_x2, i_y2, i_x3, i_y3, i_x4, i_y4, this.__pickFromRaster_cpara))
{
return false;
}
this.multiPixel(xe * i_resolution + LOCAL_LT, ye * i_resolution + LOCAL_LT, this.__pickFromRaster_cpara, i_resolution, i_out);
}
return true;
}
示例4: doFilter
public void doFilter(INyARRgbRaster i_input, NyARBinRaster i_output)
{
//INyARBufferReader in_buffer_reader = i_input.getBufferReader();
//INyARBufferReader out_buffer_reader = i_output.getBufferReader();
int in_buf_type = i_input.getBufferType();
NyARIntSize size = i_output.getSize();
Debug.Assert(i_output.isEqualBufferType(NyARBufferType.INT2D_BIN_8));
Debug.Assert(checkInputType(in_buf_type) == true);
Debug.Assert(i_input.getSize().isEqualSize(size.w * 2, size.h * 2) == true);
int[][] out_buf = (int[][])i_output.getBuffer();
switch (i_input.getBufferType())
{
case NyARBufferType.BYTE1D_B8G8R8_24:
case NyARBufferType.BYTE1D_R8G8B8_24:
convert24BitRgb((byte[])i_input.getBuffer(), out_buf, size);
break;
case NyARBufferType.BYTE1D_B8G8R8X8_32:
convert32BitRgbx((byte[])i_input.getBuffer(), out_buf, size);
break;
case NyARBufferType.WORD1D_R5G6B5_16LE:
convert16BitRgb565word((short[])i_input.getBuffer(), out_buf, size);
break;
default:
throw new NyARException();
}
return;
}
示例5: doFilter
/**
* 入力ラスタをHSV形式に変換して、出力ラスタへ書込みます。
* 画素形式は、コンストラクタに指定した形式に合せてください。
*/
public void doFilter(INyARRgbRaster i_input, INyARRaster i_output)
{
Debug.Assert(i_input.getSize().isEqualSize(i_output.getSize()) == true);
if (!this._do_filter_impl.isSupport(i_input, i_output))
{
this._do_filter_impl = this.createFilter(i_input, i_output);
}
this._do_filter_impl.doFilter(i_input, i_output, i_input.getSize());
}
开发者ID:mlakhal,项目名称:CollaborativeAugmentedRealityEnvironment,代码行数:13,代码来源:NyARRasterFilter_Rgb2Hsv.cs
示例6: copy
/**
* ラスタのコピーを実行します。
* この関数は暫定です。低速なので注意してください。
* @param i_input
* @param o_output
* @
*/
public static void copy(INyARRgbRaster i_input, INyARRgbRaster o_output)
{
Debug.Assert(i_input.getSize().isEqualSize(o_output.getSize()));
int width = i_input.getWidth();
int height = i_input.getHeight();
int[] rgb = new int[3];
INyARRgbPixelDriver inr = i_input.getRgbPixelDriver();
INyARRgbPixelDriver outr = o_output.getRgbPixelDriver();
for (int i = height - 1; i >= 0; i--)
{
for (int i2 = width - 1; i2 >= 0; i2--)
{
inr.getPixel(i2, i, rgb);
outr.setPixel(i2, i, rgb);
}
}
}
示例7: pickFromRaster
/**
* i_imageから、idマーカを読みだします。
* o_dataにはマーカデータ、o_paramにはまーかのパラメータを返却します。
* @param image
* @param i_square
* @param o_data
* @param o_param
* @return
* @throws NyARException
*/
public bool pickFromRaster(INyARRgbRaster image, NyARIntPoint2d[] i_vertex, NyIdMarkerPattern o_data, NyIdMarkerParam o_param)
{
//遠近法のパラメータを計算
if (!this._perspective_reader.setSourceSquare(i_vertex))
{
return false;
};
INyARRgbPixelReader reader = image.getRgbPixelReader();
NyARIntSize raster_size = image.getSize();
PerspectivePixelReader.TThreshold th = this.__pickFromRaster_th;
MarkerPattEncoder encoder = this.__pickFromRaster_encoder;
//マーカパラメータを取得
this._perspective_reader.detectThresholdValue(reader, raster_size, th);
if (!this._perspective_reader.readDataBits(reader, raster_size,th, encoder))
{
return false;
}
int d = encoder.encode(o_data);
if (d < 0)
{
return false;
}
o_param.direction = d;
o_param.threshold = th.th;
return true;
}
示例8: detectMarker
public void detectMarker(INyARRgbRaster i_raster)
{
// サイズチェック
if (!this._bin_raster.getSize().isEqualSize(i_raster.getSize().w, i_raster.getSize().h))
{
throw new NyARException();
}
// ラスタを2値イメージに変換する.
this._tobin_filter.setThreshold(this._current_threshold);
this._tobin_filter.doFilter(i_raster, this._bin_raster);
// スクエアコードを探す(第二引数に指定したマーカ、もしくは新しいマーカを探す。)
this._callback.init(i_raster, this._is_active ? this._data_current : null);
this._square_detect.detectMarkerCB(this._bin_raster, this._callback);
// 認識状態を更新(マーカを発見したなら、current_dataを渡すかんじ)
bool is_id_found = updateStatus(this._callback.square, this._callback.marker_data);
//閾値フィードバック(detectExistMarkerにもあるよ)
if (is_id_found)
{
//マーカがあれば、マーカの周辺閾値を反映
this._current_threshold = (this._current_threshold + this._callback.threshold) / 2;
}
else
{
//マーカがなければ、探索+DualPTailで基準輝度検索
int th = this._threshold_detect.analyzeRaster(i_raster);
this._current_threshold = (this._current_threshold + th) / 2;
}
return;
}
示例9: 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;
}
示例10: 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;
}
示例11: 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);
}
示例12: drawImage2d
public void drawImage2d(Device i_dev,int i_x,int i_y,INyARRgbRaster i_raster)
{
NyARIntSize s = i_raster.getSize();
if (this._texture == null)
{
this._texture=new NyARD3dTexture(i_dev,s.w,s.h);
}
else if (!this._texture.isEqualSize(s))
{
this._texture.Dispose();
this._texture = new NyARD3dTexture(i_dev, s.w, s.h);
}
this._texture.setRaster(i_raster);
using (Sprite sp = new Sprite(i_dev))
{
sp.Begin(SpriteFlags.None);
sp.Draw((Texture)this._texture, new Rectangle(i_x,i_y, s.w,s.h), Vector3.Empty,new Vector3(i_dev.Viewport.X, i_dev.Viewport.Y, 0),Color.White);
sp.End();
}
}
示例13: detectMarkerLite
/**
* i_imageにマーカー検出処理を実行し、結果を記録します。
*
* @param i_raster
* マーカーを検出するイメージを指定します。イメージサイズは、カメラパラメータ
* と一致していなければなりません。
* @return マーカーが検出できたかを真偽値で返します。
* @throws NyARException
*/
public bool detectMarkerLite(INyARRgbRaster i_raster)
{
//サイズチェック
if (!this._bin_raster.getSize().isEqualSize(i_raster.getSize()))
{
throw new NyARException();
}
//ラスタを2値イメージに変換する.
this._tobin_filter.doFilter(i_raster, this._bin_raster);
//コールバックハンドラの準備
this._detect_cb.init(i_raster);
//矩形を探す(戻り値はコールバック関数で受け取る。)
this._square_detect.detectMarkerCB(this._bin_raster, _detect_cb);
if (this._detect_cb.confidence == 0)
{
return false;
}
return true;
}
示例14: doFilter
public void doFilter(INyARRgbRaster i_input, NyARBinRaster i_output)
{
NyARIntSize s = i_input.getSize();
this._do_threshold_impl.doThFilter(i_input, 0, 0, s.w, s.h, this._threshold, i_output);
return;
}
示例15: 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;
}