当前位置: 首页>>代码示例>>C#>>正文


C# INyARRgbRaster类代码示例

本文整理汇总了C#中INyARRgbRaster的典型用法代码示例。如果您正苦于以下问题:C# INyARRgbRaster类的具体用法?C# INyARRgbRaster怎么用?C# INyARRgbRaster使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


INyARRgbRaster类属于命名空间,在下文中一共展示了INyARRgbRaster类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: 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;
        }
开发者ID:walidBelfadel,项目名称:MARS_project,代码行数:25,代码来源:NyARPerspectiveCopy_Base.cs

示例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;
        }
开发者ID:amoldeshpande,项目名称:slartoolkit,代码行数:7,代码来源:NyARRasterFilter_AdaptiveThreshold.cs

示例3: createDriver

 /**
  * この関数は、i_rasterを操作するピクセルドライバインスタンスを生成します。
  * @param i_raster
  * @return
  * @
  */
 public static INyARRgbPixelDriver createDriver(INyARRgbRaster i_raster)
 {
     INyARRgbPixelDriver ret;
     switch (i_raster.getBufferType())
     {
         case NyARBufferType.BYTE1D_B8G8R8_24:
             ret = new NyARRgbPixelDriver_BYTE1D_B8G8R8_24();
             break;
         case NyARBufferType.BYTE1D_B8G8R8X8_32:
             ret = new NyARRgbPixelDriver_BYTE1D_B8G8R8X8_32();
             break;
         case NyARBufferType.BYTE1D_R8G8B8_24:
             ret = new NyARRgbPixelDriver_BYTE1D_R8G8B8_24();
             break;
         case NyARBufferType.BYTE1D_X8R8G8B8_32:
             ret = new NyARRgbPixelDriver_BYTE1D_X8R8G8B8_32();
             break;
         case NyARBufferType.INT1D_GRAY_8:
             ret = new NyARRgbPixelDriver_INT1D_GRAY_8();
             break;
         case NyARBufferType.INT1D_X8R8G8B8_32:
             ret = new NyARRgbPixelDriver_INT1D_X8R8G8B8_32();
             break;
         case NyARBufferType.BYTE1D_R5G6B5_16BE:
             ret = new NyARRgbPixelDriver_WORD1D_R5G6B5_16LE();
             break;
         default:
             throw new NyARException();
     }
     ret.switchRaster(i_raster);
     return ret;
 }
开发者ID:ooHIROoo,项目名称:Imagine2016,代码行数:38,代码来源:NyARRgbPixelDriverFactory.cs

示例4: NyARRgb2GsFilterArtkTh_BYTE1D_C8C8C8_24

 public NyARRgb2GsFilterArtkTh_BYTE1D_C8C8C8_24(INyARRgbRaster i_raster)
 {
     Debug.Assert(
             i_raster.isEqualBufferType(NyARBufferType.BYTE1D_B8G8R8_24) ||
             i_raster.isEqualBufferType(NyARBufferType.BYTE1D_R8G8B8_24));
     this._raster = i_raster;
 }
开发者ID:mlakhal,项目名称:CollaborativeAugmentedRealityEnvironment,代码行数:7,代码来源:INyARRgb2GsFilterArtkTh.cs

示例5: 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;
        }
开发者ID:whztt07,项目名称:NyARToolkitCS,代码行数:31,代码来源:NyARRasterFilter_ARTTh_Quad.cs

示例6: pickFromRaster

        /**
         * この関数は、ラスタのi_vertexsで定義される四角形からパターンを取得して、インスタンスに格納します。
         */
        public override bool pickFromRaster(INyARRgbRaster image, NyARIntPoint2d[] i_vertexs)
        {
            NyARMat cpara = this.wk_pickFromRaster_cpara;
            // xdiv2,ydiv2の計算
            int xdiv2, ydiv2;
            int l1, l2;
            int w1, w2;
            // x計算
            w1 = i_vertexs[0].x - i_vertexs[1].x;
            w2 = i_vertexs[0].y - i_vertexs[1].y;
            l1 = (w1 * w1 + w2 * w2);
            w1 = i_vertexs[2].x - i_vertexs[3].x;
            w2 = i_vertexs[2].y - i_vertexs[3].y;
            l2 = (w1 * w1 + w2 * w2);
            if (l2 > l1)
            {
                l1 = l2;
            }
            l1 = l1 / 4;
            xdiv2 = this._size.w;
            while (xdiv2 * xdiv2 < l1)
            {
                xdiv2 *= 2;
            }
            if (xdiv2 > AR_PATT_SAMPLE_NUM)
            {
                xdiv2 = AR_PATT_SAMPLE_NUM;
            }

            // y計算
            w1 = i_vertexs[1].x - i_vertexs[2].x;
            w2 = i_vertexs[1].y - i_vertexs[2].y;
            l1 = (w1 * w1 + w2 * w2);
            w1 = i_vertexs[3].x - i_vertexs[0].x;
            w2 = i_vertexs[3].y - i_vertexs[0].y;
            l2 = (w1 * w1 + w2 * w2);
            if (l2 > l1)
            {
                l1 = l2;
            }
            ydiv2 = this._size.h;
            l1 = l1 / 4;
            while (ydiv2 * ydiv2 < l1)
            {
                ydiv2 *= 2;
            }
            if (ydiv2 > AR_PATT_SAMPLE_NUM)
            {
                ydiv2 = AR_PATT_SAMPLE_NUM;
            }

            // cparaの計算
            if (!get_cpara(i_vertexs, cpara))
            {
                return false;
            }
            updateExtpat(image, cpara, xdiv2, ydiv2);

            return true;
        }
开发者ID:walidBelfadel,项目名称:MARS_project,代码行数:63,代码来源:NyARColorPatt_O3.cs

示例7: createYCbCrDriver

 /**
  * この関数は(Yrcb)でグレースケール化するフィルタを生成します。
  * 最適化されていません。
  * @param i_raster
  * @return
  * @
  */
 public static INyARRgb2GsFilterYCbCr createYCbCrDriver(INyARRgbRaster i_raster)
 {
     switch (i_raster.getBufferType())
     {
         default:
             return new NyARRgb2GsFilterYCbCr_Any(i_raster);
     }
 }
开发者ID:mlakhal,项目名称:CollaborativeAugmentedRealityEnvironment,代码行数:15,代码来源:NyARRgb2GsFilterFactory.cs

示例8: createRgbCubeDriver

 /**
  * この関数は、(R*G*B>>16) でグレースケール化するフィルタを生成します。
  * 最適化されていません。
  * @param i_raster
  * @return
  * @
  */
 public static INyARRgb2GsFilterRgbAve createRgbCubeDriver(INyARRgbRaster i_raster)
 {
     switch (i_raster.getBufferType())
     {
         default:
             return new NyARRgb2GsFilterRgbCube_Any(i_raster);
     }
 }
开发者ID:mlakhal,项目名称:CollaborativeAugmentedRealityEnvironment,代码行数:15,代码来源:NyARRgb2GsFilterFactory.cs

示例9: update

		/// <summary>
		/// This function is dissabled.
		/// See "void update(Texture2D i_input)"
		/// </summary>
		/// <param name='i_input'>
		/// undefined.
		/// </param>
		public override void update(INyARRgbRaster i_input)
		{
			//Must be same instance as internal raster.
			if(i_input!=this._raster){
				throw new NyARException();
			}
			base.update(i_input);
		}
开发者ID:Carteor,项目名称:LensesAR-Unity3D,代码行数:15,代码来源:NyARUnitySensor.cs

示例10: createInstance

        public static INyARHistogramFromRaster createInstance(INyARRgbRaster i_raster) 
	{
        if (i_raster is INyARRgbRaster)
        {
			return new NyARHistogramFromRaster_AnyRgb((INyARRgbRaster)i_raster);
		}
		throw new NyARException();
	}
开发者ID:whztt07,项目名称:NyARToolkitCS,代码行数:8,代码来源:NyARHistogramFromRasterFactory.cs

示例11: pickupImage2d

        /**
         * This function retrieves bitmap from the area defined by RECT(i_l,i_t,i_r,i_b) above transform matrix i_base_mat. 
         * ----
         * この関数は、basementで示される平面のAで定義される領域から、ビットマップを読み出します。
         * 例えば、8cmマーカでRECT(i_l,i_t,i_r,i_b)に-40,0,0,-40.0を指定すると、マーカの左下部分の画像を抽出します。
         * 
         * マーカから離れた場所になるほど、また、マーカの鉛直方向から外れるほど誤差が大きくなります。
         * @param i_src_imege
         * 詠み出し元の画像を指定します。
         * @param i_l
         * 基準点からの左上の相対座標(x)を指定します。
         * @param i_t
         * 基準点からの左上の相対座標(y)を指定します。
         * @param i_r
         * 基準点からの右下の相対座標(x)を指定します。
         * @param i_b
         * 基準点からの右下の相対座標(y)を指定します。
         * @param i_base_mat
         * @return 画像の取得の成否を返す。
         */
        public bool pickupImage2d(INyARRgbRaster i_src_imege, double i_l, double i_t, double i_r, double i_b, NyARTransMatResult i_base_mat)
        {
            double cp00, cp01, cp02, cp11, cp12;
            cp00 = this._ref_perspective.m00;
            cp01 = this._ref_perspective.m01;
            cp02 = this._ref_perspective.m02;
            cp11 = this._ref_perspective.m11;
            cp12 = this._ref_perspective.m12;
            //マーカと同一平面上にある矩形の4個の頂点を座標変換して、射影変換して画面上の
            //頂点を計算する。
            //[hX,hY,h]=[P][RT][x,y,z]

            //出力先
            NyARIntPoint2d[] poinsts = this._work_points;

            double yt0, yt1, yt2;
            double x3, y3, z3;

            double m00 = i_base_mat.m00;
            double m10 = i_base_mat.m10;
            double m20 = i_base_mat.m20;

            //yとtの要素を先に計算
            yt0 = i_base_mat.m01 * i_t + i_base_mat.m03;
            yt1 = i_base_mat.m11 * i_t + i_base_mat.m13;
            yt2 = i_base_mat.m21 * i_t + i_base_mat.m23;
            // l,t
            x3 = m00 * i_l + yt0;
            y3 = m10 * i_l + yt1;
            z3 = m20 * i_l + yt2;
            poinsts[0].x = (int)((x3 * cp00 + y3 * cp01 + z3 * cp02) / z3);
            poinsts[0].y = (int)((y3 * cp11 + z3 * cp12) / z3);
            // r,t
            x3 = m00 * i_r + yt0;
            y3 = m10 * i_r + yt1;
            z3 = m20 * i_r + yt2;
            poinsts[1].x = (int)((x3 * cp00 + y3 * cp01 + z3 * cp02) / z3);
            poinsts[1].y = (int)((y3 * cp11 + z3 * cp12) / z3);

            //yとtの要素を先に計算
            yt0 = i_base_mat.m01 * i_b + i_base_mat.m03;
            yt1 = i_base_mat.m11 * i_b + i_base_mat.m13;
            yt2 = i_base_mat.m21 * i_b + i_base_mat.m23;

            // r,b
            x3 = m00 * i_r + yt0;
            y3 = m10 * i_r + yt1;
            z3 = m20 * i_r + yt2;
            poinsts[2].x = (int)((x3 * cp00 + y3 * cp01 + z3 * cp02) / z3);
            poinsts[2].y = (int)((y3 * cp11 + z3 * cp12) / z3);
            // l,b
            x3 = m00 * i_l + yt0;
            y3 = m10 * i_l + yt1;
            z3 = m20 * i_l + yt2;
            poinsts[3].x = (int)((x3 * cp00 + y3 * cp01 + z3 * cp02) / z3);
            poinsts[3].y = (int)((y3 * cp11 + z3 * cp12) / z3);
            return this.pickFromRaster(i_src_imege, poinsts);
        }
开发者ID:flair2005,项目名称:CameraPositioner,代码行数:78,代码来源:TransformedBitmapPickup.cs

示例12: 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

示例13: createDriver

 public static IRasterDriver createDriver(INyARRgbRaster i_raster)
 {
     switch (i_raster.getBufferType())
     {
         case NyARBufferType.INT1D_X8R8G8B8_32:
             return new NyARMatchPattDeviationDataDriver_INT1D_X8R8G8B8_32(i_raster);
         default:
             break;
     }
     return new NyARMatchPattDeviationDataDriver_RGBAny(i_raster);
 }
开发者ID:whztt07,项目名称:NyARToolkitCS,代码行数:11,代码来源:NyARMatchPattDeviationColorData.cs

示例14: setRaster

 /* DsXRGB32Rasterの内容を保持しているサーフェイスにコピーします。
  */
 public void setRaster(INyARRgbRaster i_sample)
 {
     Debug.Assert(!this._is_dispose);
     int pitch;
     int s_stride = this.m_width * 4;
     using (GraphicsStream gs = this._surface.LockRectangle(LockFlags.None, out pitch))
     {
         try{                    
             switch (i_sample.getBufferType())
             {
                 case NyARBufferType.BYTE1D_B8G8R8X8_32:
                     if (pitch % s_stride == 0)
                     {
                         Marshal.Copy((byte[])i_sample.getBuffer(), 0, (IntPtr)((int)gs.InternalData), this.m_width * 4 * this.m_height);
                     }
                     else
                     {
                         int s_idx = 0;
                         int d_idx = (int)gs.InternalData;
                         for (int i = this.m_height - 1; i >= 0; i--)
                         {
                             //どう考えてもポインタです。
                             Marshal.Copy((byte[])i_sample.getBuffer(), s_idx, (IntPtr)(d_idx), s_stride);
                             s_idx += s_stride;
                             d_idx += pitch;
                         }
                     }
                     break;
                 case NyARBufferType.OBJECT_CS_Bitmap:
                     NyARBitmapRaster ra = (NyARBitmapRaster)(i_sample);
                     BitmapData bm = ra.lockBitmap();
                     try{
                         //コピー
                         int src = (int)bm.Scan0;
                         int dst = (int)gs.InternalData;
                         for (int r = this.m_height - 1; r >= 0; r--)
                         {
                             NyARD3dUtil.RtlCopyMemory((IntPtr)dst, (IntPtr)src, s_stride);
                             dst += pitch;
                             src += bm.Stride;
                         }
                     }finally{
                         ra.unlockBitmap();
                     }
                     break;
                 default:
                     throw new NyARException();
             }
         }finally{
             this._surface.UnlockRectangle();
         }
         return;
     }
 }
开发者ID:whztt07,项目名称:NyARToolkitCS,代码行数:56,代码来源:NyARD3dSurface.cs

示例15: createRgbAveDriver

 /**
  * この関数は、(R*G*B)/3 でグレースケール化するフィルタを生成します。
  * 最適化されている形式は以下の通りです。
  * <ul>
  * <li>{@link NyARBufferType#BYTE1D_B8G8R8X8_32}</li>
  * </ul>
  * @param i_raster
  * @return
  * @
  */
 public static INyARRgb2GsFilterRgbAve createRgbAveDriver(INyARRgbRaster i_raster)
 {
     switch (i_raster.getBufferType())
     {
         case NyARBufferType.BYTE1D_B8G8R8X8_32:
             return new NyARRgb2GsFilterRgbAve_BYTE1D_B8G8R8X8_32(i_raster);
         case NyARBufferType.BYTE1D_B8G8R8_24:
             return new NyARRgb2GsFilterRgbAve_BYTE1D_C8C8C8_24(i_raster);
         case NyARBufferType.BYTE1D_X8R8G8B8_32:
             return new NyARRgb2GsFilterRgbAve_INT1D_X8R8G8B8_32(i_raster);
         default:
             return new NyARRgb2GsFilterRgbAve_Any(i_raster);
     }
 }
开发者ID:mlakhal,项目名称:CollaborativeAugmentedRealityEnvironment,代码行数:24,代码来源:NyARRgb2GsFilterFactory.cs


注:本文中的INyARRgbRaster类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。