Exemplo n.º 1
0
        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;
        }
Exemplo n.º 3
0
 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;
        }
Exemplo n.º 5
0
 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);
 }
Exemplo n.º 6
0
 /**
  * この関数は、{@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;
     }
 }
Exemplo n.º 7
0
        /// <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;
            }
        }
Exemplo n.º 8
0
        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();
        }