public override void setup(CaptureDevice i_cap) { Device d3d = this.size(SCREEN_WIDTH, SCREEN_HEIGHT); INyARMarkerSystemConfig cf = new NyARMarkerSystemConfig(SCREEN_WIDTH, SCREEN_HEIGHT); d3d.RenderState.ZBufferEnable = true; d3d.RenderState.Lighting = false; d3d.RenderState.CullMode = Cull.CounterClockwise; this._ms = new NyARD3dMarkerSystem(cf); this._ss = new NyARSensor(cf.getScreenSize()); this._rs = new NyARD3dRender(d3d, this._ms); this.mid = this._ms.addARMarker(AR_CODE_FILE, 16, 25, 80); //set View mmatrix this._rs.loadARViewMatrix(d3d); //set Viewport matrix this._rs.loadARViewPort(d3d); //setD3dProjectionMatrix this._rs.loadARProjectionMatrix(d3d); Bitmap src = new Bitmap(TEST_IMAGE); Bitmap input = new Bitmap(src.Width, src.Height, System.Drawing.Imaging.PixelFormat.Format32bppRgb); using (Graphics g = Graphics.FromImage(input)) { g.DrawImage(src, 0, 0); } this._ss.update(new NyARBitmapRaster(input)); }
/** <summary> * This function is{@link #getMarkerPlaneImage(int, NyARSensor, int, int, int, int, int, int, int, int, INyARRgbRaster)} * It is a wrapper. The acquired image{@link #BufferedImage}I returned in the form. * </summary> * <param name="i_id"></param> * <param name="i_sensor"></param> * <param name="i_x1"></param> * <param name="i_y1"></param> * <param name="i_x2"></param> * <param name="i_y2"></param> * <param name="i_x3"></param> * <param name="i_y3"></param> * <param name="i_x4"></param> * <param name="i_y4"></param> * <param name="i_img"></param> * <returns></returns> **/ public void getMarkerPlaneImage(int i_id, NyARSensor i_sensor, int i_x1, int i_y1, int i_x2, int i_y2, int i_x3, int i_y3, int i_x4, int i_y4, Texture2D i_img) { NyARUnityRaster bmr = new NyARUnityRaster(i_img); base.getMarkerPlaneImage(i_id, i_sensor, i_x1, i_y1, i_x2, i_y2, i_x3, i_y3, i_x4, i_y4, bmr); return; }
public void getMarkerPlaneImage( int i_id, NyARSensor i_sensor, int i_l, int i_t, int i_w, int i_h, Texture2D i_img) { this.getPlaneImage(i_id, i_sensor, i_l, i_t, i_w, i_h, i_img); }
/** * This function is{@link #getMarkerPlaneImage(int, NyARSensor, int, int, int, int, INyARRgbRaster)} * It is a wrapper. The acquired image{@link #BufferedImage}I returned in the form. * @param i_id * marker id * @param i_sensor * Object to retrieve the image sensor. Is usually{@link #update(NyARSensor)}I will be the same as it was entered into the function. * @param i_l * @param i_t * @param i_w * @param i_h * @param i_raster * Object where the output * @return * I have to store the result i_raster Object * @throws NyARException */ public void getMarkerPlaneImage(int i_id, NyARSensor i_sensor, int i_l, int i_t, int i_w, int i_h, Texture2D i_img) { NyARUnityRaster bmr = new NyARUnityRaster(i_img.width, i_img.height, true); base.getMarkerPlaneImage(i_id, i_sensor, i_l, i_t, i_w, i_h, bmr); i_img.SetPixels32((Color32[])bmr.getBuffer()); i_img.Apply(); return; }
public void getMarkerPlaneImage( int i_id, NyARSensor i_sensor, int i_x1, int i_y1, int i_x2, int i_y2, int i_x3, int i_y3, int i_x4, int i_y4, Texture2D i_img) { this.getPlaneImage(i_id, i_sensor, i_x1, i_y1, i_x2, i_y2, i_x3, i_y3, i_x4, i_y4, i_img); }
/** * この関数は、{@link #getMarkerPlaneImage(int, NyARSensor, int, int, int, int, INyARRgbRaster)} * のラッパーです。取得画像を{@link #BufferedImage}形式で返します。 * @param i_id * マーカid * @param i_sensor * 画像を取得するセンサオブジェクト。通常は{@link #update(NyARSensor)}関数に入力したものと同じものを指定します。 * @param i_l * @param i_t * @param i_w * @param i_h * @param i_raster * 出力先のオブジェクト * @return * 結果を格納したi_rasterオブジェクト * @throws NyARException */ public void getPlaneImage( int i_id, NyARSensor i_sensor, int i_l, int i_t, int i_w, int i_h, Bitmap i_img) { using (NyARBitmapRaster bmr = new NyARBitmapRaster(i_img)) { base.getPlaneImage(i_id, i_sensor, i_l, i_t, i_w, i_h, bmr); return; } }
/// <summary> /// この関数は、{@link #getMarkerPlaneImage(int, NyARSensor, int, int, int, int, int, int, int, int, INyARRgbRaster)} /// のラッパーです。取得画像を{@link #BufferedImage}形式で返します。 /// </summary> /// <param name="i_id"></param> /// <param name="i_sensor"></param> /// <param name="i_x1"></param> /// <param name="i_y1"></param> /// <param name="i_x2"></param> /// <param name="i_y2"></param> /// <param name="i_x3"></param> /// <param name="i_y3"></param> /// <param name="i_x4"></param> /// <param name="i_y4"></param> /// <param name="i_img"></param> /// <returns></returns> public void getMarkerPlaneImage( int i_id, NyARSensor i_sensor, int i_x1, int i_y1, int i_x2, int i_y2, int i_x3, int i_y3, int i_x4, int i_y4, Bitmap i_img) { using (NyARBitmapRaster bmr = new NyARBitmapRaster(i_img)) { base.getMarkerPlaneImage(i_id, i_sensor, i_x1, i_y1, i_x2, i_y2, i_x3, i_y3, i_x4, i_y4, bmr); return; } }
public void ProcessImage(IVideoCapture captureDevice, byte[] imagePtr) { if (captureDevice.Format != ImageFormat.B8G8R8A8_32) throw new MarkerException("Only ImageFormat.B8G8R8A8_32 format is acceptable for NyARToolkitTracker"); // initialize the detector right before the image processing if (!started) { nyARSensor = new NyARSensor(nyARIntSize); nyARRaster = new DsBGRX32Raster(nyARIntSize.w, nyARIntSize.h); nyARSensor.update(nyARRaster); started = true; } nyARRaster.SetBuffer(imagePtr); nyARSensor.update(nyARRaster); nyARSensor.updateTimeStamp(); markerSystem.update(nyARSensor); UpdateMarkerTransforms(); }