コード例 #1
0
ファイル: MainViewModel.cs プロジェクト: maxci-nv/ImgAlgs
        /// <summary>
        /// Загружаем картинку
        /// </summary>
        private void openFile(object parameters)
        {
            OpenFileDialog ofd = new OpenFileDialog();

            ofd.Filter           = ".jpg, .jpeg, .gif, .bmp, .png|*.jpg;*.jpeg;*.gif;*.bmp;*.png|*.*|*.*";
            ofd.Multiselect      = false;
            ofd.InitialDirectory = @"D:\_Downloads_\капча\";

            if (ofd.ShowDialog() == true)
            {
                FileName           = ofd.FileName;
                ImgOriginal        = new Bitmap(_fileName);
                ImgSkeletonization = Skeletonization.Run(_imgOriginal);
            }
        }
コード例 #2
0
ファイル: FilterFigure.cs プロジェクト: interopxyz/Macaw.GH
        /// <summary>
        /// This is the method that actually does the work.
        /// </summary>
        /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param>
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            IGH_Goo goo   = null;
            Image   image = new Image();

            if (!DA.GetData(0, ref goo))
            {
                return;
            }
            if (!goo.TryGetImage(ref image))
            {
                return;
            }

            int mode = 0;

            DA.GetData(1, ref mode);

            bool valueA = false;

            DA.GetData(2, ref valueA);

            int valueB = 1;

            DA.GetData(3, ref valueB);

            int valueC = 1;

            DA.GetData(4, ref valueC);

            Filter filter = new Filter();

            switch ((FilterModes)mode)
            {
            case FilterModes.Closing:
                SetParameter(2);
                SetParameter(3);
                SetParameter(4);
                filter = new Closing();
                image.Filters.Add(new Closing());
                break;

            case FilterModes.Dilation:
                SetParameter(2);
                SetParameter(3);
                SetParameter(4);
                filter = new Dilation();
                image.Filters.Add(new Dilation());
                break;

            case FilterModes.DilationBinary:
                SetParameter(2);
                SetParameter(3);
                SetParameter(4);
                filter = new DilationBinary();
                image.Filters.Add(new DilationBinary());
                break;

            case FilterModes.Erosion:
                SetParameter(2);
                SetParameter(3);
                SetParameter(4);
                filter = new Erosion();
                image.Filters.Add(new Erosion());
                break;

            case FilterModes.ErosionBinary:
                SetParameter(2);
                SetParameter(3);
                SetParameter(4);
                filter = new ErosionBinary();
                image.Filters.Add(new ErosionBinary());
                break;

            case FilterModes.HatBottom:
                SetParameter(2);
                SetParameter(3);
                SetParameter(4);
                filter = new HatBottom();
                image.Filters.Add(new HatBottom());
                break;

            case FilterModes.HatTop:
                SetParameter(2);
                SetParameter(3);
                SetParameter(4);
                filter = new HatTop();
                image.Filters.Add(new HatTop());
                break;

            case FilterModes.Opening:
                SetParameter(2);
                SetParameter(3);
                SetParameter(4);
                filter = new Opening();
                image.Filters.Add(new Opening());
                break;

            case FilterModes.Skeletonization:
                SetParameter(2);
                SetParameter(3);
                SetParameter(4);
                filter = new Skeletonization();
                image.Filters.Add(new Skeletonization());
                break;

            case FilterModes.SkeletonizationZhangSuen:
                SetParameter(2);
                SetParameter(3);
                SetParameter(4);
                filter = new SkeletonizationZhangSuen();
                image.Filters.Add(new SkeletonizationZhangSuen());
                break;

            case FilterModes.HorizontalBands:
                SetParameter(2, "B", "Borders", "Process gaps");
                SetParameter(3, "G", "Gap", "The pixel gap size");
                SetParameter(4);
                filter = new BandsHorizontal(valueB, valueA);
                image.Filters.Add(new BandsHorizontal(valueB, valueA));
                break;

            case FilterModes.VerticalBands:
                SetParameter(2, "B", "Borders", "Process gaps");
                SetParameter(3, "G", "Gap", "The pixel gap size");
                SetParameter(4);
                filter = new BandsVertical(valueB, valueA);
                image.Filters.Add(new BandsVertical(valueB, valueA));
                break;

            case FilterModes.FillHoles:
                SetParameter(2, "B", "Borders", "Process gaps");
                SetParameter(3, "W", "Width", "The pixel threshold");
                SetParameter(4, "H", "Height", "The pixel threshold");
                filter = new FillHoles(valueC, valueB, valueA);
                image.Filters.Add(new FillHoles(valueC, valueB, valueA));
                break;
            }

            message = ((FilterModes)mode).ToString();
            UpdateMessage();

            DA.SetData(0, image);
            DA.SetData(1, filter);
        }