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


C# Mat.Dispose方法代码示例

本文整理汇总了C#中OpenCvSharp.Mat.Dispose方法的典型用法代码示例。如果您正苦于以下问题:C# Mat.Dispose方法的具体用法?C# Mat.Dispose怎么用?C# Mat.Dispose使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在OpenCvSharp.Mat的用法示例。


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

示例1: CvDct

        public void CvDct(ref Mat DST, Mat SRC, int N)
        {
            Mat dct, idct;
            Mat dct2, dct3;
            int width = SRC.Width;//N;
            int height = SRC.Height;//N;

            DST = SRC.Clone();

            //DCT,IDCT用の行列作成(double)
            dct =  new Mat(height, width, MatType.CV_64FC1);
            idct = new Mat(height, width, MatType.CV_64FC1);

            dct2 = new Mat(height, width, MatType.CV_64FC1);
            dct3 = new Mat(height, width, MatType.CV_64FC1);

            var indexer_DST = new MatOfByte3(DST).GetIndexer();
            var indexer_dct = new MatOfDouble3(dct).GetIndexer();

            //行列dctに画像データをコピー
            //double fcos;
            for (int x = 0; x < width; x++)
                for (int y = 0; y < height; y++)
                {
                    Vec3d color = indexer_dct[y, x];
                    color.Item0= indexer_DST[y, x].Item0 / 256.0;
                    indexer_dct[y,x] = color;
                }
            //DCT…dctをコサイン変換してdct2を作成します
            Cv2.Dct(dct, dct2, DctFlags.None);

            //dct2をDenomで割りdct3を作成します
            PerformDenom(ref dct3, dct2);

            //IDCT…dct3を逆コサイン変換します
            Cv2.Dct(dct3, idct, DctFlags.Inverse);
            var indexer_idct = new MatOfDouble3(idct).GetIndexer();

            //逆変換用画像にデータをコピー
            for (int x = 0; x < width; x++)
                for (int y = 0; y < height; y++)
                {
                    Vec3b color = indexer_DST[y, x];
                    color.Item0=  (byte)(indexer_idct[y,x].Item0 * 256.0);
                    indexer_DST[y,x]=color;
                }

            ////正規化
            //double min, max;
            //min = 4000000000000;
            //max = -4000000000000;
            //double offset = 0.0;

            ////輝度値の最大と最小を取得
            //DST.MinMaxIdx(out min, out max);
            ////for (int x = 0; x < width; x++)
            ////    for (int y = 0; y < height; y++)
            ////    {
            ////        double data = indexer_DST[y,x].Item0;
            ////        if (data < min) min = data;
            ////        if (data > max) max = data;
            ////    }

            //for (int x = 0; x < width; x++)
            //    for (int y = 0; y < height; y++)
            //    {
            //        Vec3b color = indexer_DST[y, x];
            //        double data = indexer_DST[y, x].Item0;

            //        if (data < min + offset) data = min + offset;
            //        color.Item0 = (byte)( (((data / (max - min + offset))) * 255.0) - (((min + offset) / (max - min + offset)) * 255.0) );
            //        indexer_DST[y,x] = color;
            //    }
            ////DST = idct.Clone();

            //行列メモリを開放します
            dct.Dispose();
            dct2.Dispose();
            dct3.Dispose();
            idct.Dispose();

            indexer_dct = null;
            indexer_DST = null;
            indexer_idct = null;
        }
开发者ID:c13proto,项目名称:reflection_delete2,代码行数:85,代码来源:manualCV.cs

示例2: ReadMat

 /// <summary>
 /// 
 /// </summary>
 /// <param name="defaultMat"></param>
 /// <returns></returns>
 public Mat ReadMat(Mat defaultMat = null)
 {
     var value = new Mat();
     try
     {
         NativeMethods.core_FileNode_read_Mat(ptr, value.CvPtr, Cv2.ToPtr(defaultMat));
     }
     catch
     {
         value.Dispose();
         throw;
     }
     return value;
 }
开发者ID:shimat,项目名称:opencvsharp,代码行数:19,代码来源:FileNode.cs

示例3: OpenFileDialog

 void 画像取得(ref Mat src)
 {
     if (src != null) src.Dispose();
     OpenFileDialog dialog = new OpenFileDialog()
     {
         Multiselect = false,  // 複数選択の可否
         Filter =  // フィルタ
         "画像ファイル|*.bmp;*.gif;*.jpg;*.png|全てのファイル|*.*",
     };
     //ダイアログを表示
     //ダイアログを表示
     DialogResult result = dialog.ShowDialog();
     if (result == DialogResult.OK)
     {
         // ファイル名をタイトルバーに設定
         this.Text = dialog.SafeFileName;
         //OpenCV処理
         src = new Mat(dialog.FileName, ImreadModes.GrayScale);
         pictureBoxIpl1.ImageIpl = src;
     }
 }
开发者ID:c13proto,项目名称:histgram,代码行数:21,代码来源:main.cs


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