Exemple #1
0
        private string reconhecerCaptcha(Image img)
        {
            Bitmap _bitmap = new Bitmap(img);

            _bitmap = _bitmap.Clone(new Rectangle(0, 0, img.Width, img.Height), System.Drawing.Imaging.PixelFormat.Format24bppRgb);
            Erosion        erosion    = new Erosion();
            Dilatation     dilatation = new Dilatation();
            Invert         inverter   = new Invert();
            ColorFiltering cor        = new ColorFiltering();

            cor.Blue  = new AForge.IntRange(200, 255);
            cor.Red   = new AForge.IntRange(200, 255);
            cor.Green = new AForge.IntRange(200, 255);
            Opening            open  = new Opening();
            BlobsFiltering     bc    = new BlobsFiltering();
            Closing            close = new Closing();
            GaussianSharpen    gs    = new GaussianSharpen();
            ContrastCorrection cc    = new ContrastCorrection();

            bc.MinHeight = 10;
            FiltersSequence seq = new FiltersSequence(gs, inverter, open, inverter, bc, inverter, open, cc, cor, bc, inverter);

            pictureBox1.Image = seq.Apply(_bitmap);
            string recognedString = OCR((Bitmap)pictureBox1.Image);

            return(recognedString);
        }
Exemple #2
0
        public static Bitmap ProcessBlob(Bitmap img)
        {
            BlobCounterBase bc = new BlobCounter();

            // set filtering options
            bc.FilterBlobs = true;
            bc.MinWidth    = 2;
            bc.MinHeight   = 2;
            // set ordering options
            bc.ObjectsOrder = ObjectsOrder.Size;
            // process binary image
            bc.ProcessImage(Grayscale.CommonAlgorithms.BT709.Apply(img));
            Blob[] blobs = bc.GetObjectsInformation();
            // extract the biggest blob
            if (blobs.Length > 0)
            {
                bc.ExtractBlobsImage(img, blobs[0], true);
                // create filter
                BlobsFiltering filter = new BlobsFiltering();
                // apply the filter
                Bitmap biggestBlobsImage = filter.Apply(img);
                return(biggestBlobsImage);
            }
            return(img);
        }
 private void InitializeFilters()
 {
     grayscaleFilter               = new Grayscale(0.299, 0.587, 0.114);
     bradleyLocalFilter            = new BradleyLocalThresholding();
     bradleyLocalFilter.WindowSize = 9;
     bradleyLocalFilter.PixelBrightnessDifferenceLimit = 0.01f;
     plateBlobsFiltering     = new BlobsFiltering(10, 20, 80, 66);
     blobCounter             = new BlobCounter();
     blobCounter.FilterBlobs = true;
     blobCounter.MinWidth    = 50;
     blobCounter.MinHeight   = 10;
     blobCounter.MaxWidth    = 520;
     blobCounter.MaxHeight   = 110;
     plateBlobCounter        = new BlobCounter();
     shapeChecker            = new SimpleShapeChecker();
     otsuThresholdFilter     = new OtsuThreshold();
     fillHoles = new FillHoles();
     fillHoles.MaxHoleWidth  = 100;
     fillHoles.MaxHoleHeight = 40;
     pen                             = new Pen(Color.GreenYellow, 4);
     openingFilter                   = new Opening();
     contrastCorrectionFilter        = new ContrastCorrection(80);
     colorFiltering                  = new ColorFiltering();
     colorFiltering.Red              = new IntRange(150, 255);
     colorFiltering.Green            = new IntRange(150, 255);
     colorFiltering.Blue             = new IntRange(150, 255);
     colorFiltering.FillOutsideRange = true;
     invert                          = new Invert();
 }
Exemple #4
0
        public Bitmap ExtractHandContour(Bitmap img)
        {
            // create filter to remove noise (small blobs)
            BlobsFiltering filterB = new BlobsFiltering();

            // configure filter
            //filterB.CoupledSizeFiltering = true;
            filterB.MinWidth  = 200;
            filterB.MinHeight = 400;
            // apply the filter


            this.imgHandContour = filterB.Apply(img);
            this.imgHandContour = this.Invert();
            int iVerticalOffset = 150; //cut bottom noise

            Bitmap newImg = new Bitmap(this.imgHandContour.Width, this.imgHandContour.Height - iVerticalOffset, System.Drawing.Imaging.PixelFormat.Format24bppRgb);

            for (int x = 0; x < this.imgHandContour.Width; x++)
            {
                for (int y = 0; y < this.imgHandContour.Height - iVerticalOffset; y++)
                {
                    //if(this.imgHandContour.GetPixel(x,y).Name !=  "ffffffff")
                    newImg.SetPixel(x, y, this.imgHandContour.GetPixel(x, y));
                }
            }
            return(newImg);

            //return imgHandContour;
        }
Exemple #5
0
        private Bitmap LimparImagem(Image img)
        {
            var imagem = new Bitmap(img);

            imagem = imagem.Clone(new Rectangle(0, 0, img.Width, img.Height), System.Drawing.Imaging.PixelFormat.Format24bppRgb);

            var inverter = new Invert();

            var cor = new ColorFiltering
            {
                Blue  = new AForge.IntRange(200, 255),
                Red   = new AForge.IntRange(200, 255),
                Green = new AForge.IntRange(200, 255)
            };

            var open = new Opening();
            var bc   = new BlobsFiltering();
            var gs   = new GaussianSharpen();
            var cc   = new ContrastCorrection();

            bc.MinHeight = 10;

            var seq = new FiltersSequence(gs, inverter, open, inverter, bc, inverter, open, cc, cor, bc, inverter);

            imagem = seq.Apply(imagem);
            return(imagem);
        }
Exemple #6
0
        public static Bitmap ApplyFilters(Image img)
        {
            Bitmap imagem = new Bitmap(img);

            imagem = imagem.Clone(new Rectangle(0, 0, img.Width, img.Height), System.Drawing.Imaging.PixelFormat.Format24bppRgb);
            Erosion        erosion    = new Erosion();
            Dilatation     dilatation = new Dilatation();
            Invert         inverter   = new Invert();
            ColorFiltering cor        = new ColorFiltering();

            cor.Blue  = new AForge.IntRange(200, 255);
            cor.Red   = new AForge.IntRange(200, 255);
            cor.Green = new AForge.IntRange(200, 255);
            Opening            open  = new Opening();
            BlobsFiltering     bc    = new BlobsFiltering();
            Closing            close = new Closing();
            GaussianSharpen    gs    = new GaussianSharpen();
            ContrastCorrection cc    = new ContrastCorrection();

            bc.MinHeight = 10;
            FiltersSequence seq           = new FiltersSequence(gs, inverter, open, inverter, bc, inverter, open, cc, cor, bc, inverter);
            var             filteredImage = seq.Apply(imagem);

            return(filteredImage);
        }
Exemple #7
0
        private string reconhecerCaptcha(Image img)
        {
            Bitmap imagem = new Bitmap(img);

            imagem = imagem.Clone(new Rectangle(0, 0, img.Width, img.Height), System.Drawing.Imaging.PixelFormat.Format24bppRgb);
            Erosion        erosion    = new Erosion();
            Dilatation     dilatation = new Dilatation();
            Invert         inverter   = new Invert();
            ColorFiltering cor        = new ColorFiltering();

            cor.Blue  = new AForge.IntRange(200, 255);
            cor.Red   = new AForge.IntRange(200, 255);
            cor.Green = new AForge.IntRange(200, 255);
            Opening            open  = new Opening();
            BlobsFiltering     bc    = new BlobsFiltering();
            Closing            close = new Closing();
            GaussianSharpen    gs    = new GaussianSharpen();
            ContrastCorrection cc    = new ContrastCorrection();

            bc.MinHeight = 10;
            FiltersSequence seq = new FiltersSequence(gs, inverter, open, inverter, bc, inverter, open, cc, cor, bc, inverter);

            imagem = seq.Apply(imagem);
            //imagem.Save(Directory.GetCurrentDirectory() + "\\Captcha2.png", System.Drawing.Imaging.ImageFormat.Png);
            string reconhecido = OCR(imagem);

            //string reconhecido = ocr.Principal(Directory.GetCurrentDirectory() + "\\Captcha2.png");
            return(reconhecido);
        }
Exemple #8
0
 public static Task <(Bitmap, string)> DeCaptchAsync(Image img)
 {
     return((Task <(Bitmap, string)>)Task.Run(() =>
     {
         string value;
         Bitmap bmp = new Bitmap(img);
         bmp = bmp.Clone(new Rectangle(0, 0, img.Width, img.Height), System.Drawing.Imaging.PixelFormat.Format24bppRgb);
         Erosion erosion = new Erosion();
         Dilatation dilatation = new Dilatation();
         Invert inverter = new Invert();
         ColorFiltering cor = new ColorFiltering();
         //cor.Blue = new AForge.IntRange(200, 255);
         cor.Red = new AForge.IntRange(50, 255);
         //cor.Green = new AForge.IntRange(200, 255);
         Opening open = new Opening();
         BlobsFiltering bc = new BlobsFiltering()
         {
             MinHeight = 10
         };
         Closing close = new Closing();
         GaussianSharpen gs = new GaussianSharpen();
         ContrastCorrection cc = new ContrastCorrection();
         FiltersSequence seq = new FiltersSequence(gs, inverter, open, inverter, bc, inverter, open, cc, cor, bc, inverter, dilatation);
         Image image = seq.Apply(bmp);
         value = OCR((Bitmap)image);
         return ((Bitmap)image, value);
     }));
 }
Exemple #9
0
        private string reconhecerCaptcha(Image img)
        {
            Bitmap imagem = new Bitmap(img);

            imagem = imagem.Clone(new Rectangle(0, 0, img.Width, img.Height), System.Drawing.Imaging.PixelFormat.Format24bppRgb);
            Erosion        erosion    = new Erosion();
            Dilatation     dilatation = new Dilatation();
            Invert         inverter   = new Invert();
            ColorFiltering cor        = new ColorFiltering();

            cor.Blue  = new AForge.IntRange(200, 255);
            cor.Red   = new AForge.IntRange(200, 255);
            cor.Green = new AForge.IntRange(200, 255);
            Opening            open  = new Opening();
            BlobsFiltering     bc    = new BlobsFiltering();
            Closing            close = new Closing();
            GaussianSharpen    gs    = new GaussianSharpen();
            ContrastCorrection cc    = new ContrastCorrection();

            bc.MinHeight = 10;
            GrayscaleRMY    gray = new GrayscaleRMY();
            Threshold       thr  = new Threshold(200);
            Difference      diff = new Difference(dilatation.Apply(imagem));
            FiltersSequence seq  = new FiltersSequence(diff, inverter, erosion, gray, thr, cc);

            pictureBox.Image = seq.Apply(imagem);
            string reconhecido = OCR((Bitmap)pictureBox.Image);

            return(reconhecido);
        }
Exemple #10
0
        public mFigureFilter()
        {
            BitmapType = BitmapTypes.GrayscaleBT709;

            Effect = new BlobsFiltering();

            filter = Effect;
        }
 public BlobsFilteringUserControl(BlobsFiltering filter)
     : this()
 {
     minWidthNumericUpDown.Value  = filter.MinWidth;
     maxWidthNumericUpDown.Value  = filter.MaxWidth;
     minHeightNumericUpDown.Value = filter.MinHeight;
     maxHeightNumericUpDown.Value = filter.MaxHeight;
 }
        public static Bitmap BlobsFiltering(Bitmap Imagem)
        {
            BlobsFiltering filter = new BlobsFiltering();

            Imagem = Imagem.Clone(new Rectangle(0, 0, Imagem.Width, Imagem.Height), System.Drawing.Imaging.PixelFormat.Format24bppRgb);
            Imagem = filter.Apply(Imagem);
            return(Imagem);
        }
        private Bitmap ProcessImageBlobsFiltering(Bitmap img)
        {
            BlobsFiltering blobsFiltering = new BlobsFiltering();

            blobsFiltering.CoupledSizeFiltering = true;
            blobsFiltering.MinWidth             = minWidth;
            blobsFiltering.MinHeight            = minHeight;
            return(blobsFiltering.Apply(img));
        }
Exemple #14
0
        //blob filter
        private void blob()
        {
            Bitmap         gambar = (Bitmap)crop_image.Image;
            BlobsFiltering filter = new BlobsFiltering();

            filter.CoupledSizeFiltering = true;
            filter.MinWidth             = 100;
            filter.MinHeight            = 150;
            crop_image.Image            = filter.Apply(gambar);
        }
Exemple #15
0
        public mFigureFilter(wDomain WidthRange, wDomain HeightRange)
        {
            Width  = WidthRange;
            Height = HeightRange;

            BitmapType = BitmapTypes.GrayscaleBT709;

            Effect = new BlobsFiltering((int)Width.T0, (int)Height.T0, (int)Width.T1, (int)Height.T1);

            filter = Effect;
        }
Exemple #16
0
        //-------------------------------------------------------------
        private void process_imginput(Bitmap img, String Plate_Type)
        {
            //grayscale
            IFilter way_filt;//= new GrayscaleY();

            //process_image = way_filt.Apply(img);
            //resize
            if (Plate_Type == "1hang")
            {
                way_filt = new ResizeBilinear(600, 120); //bien 1 hang
            }
            else
            {
                way_filt = new ResizeBilinear(300, 200); //bien 2 hang
            }

            process_image = way_filt.Apply(img);
            //process_image = get_plate(process_image, 10, 210, 30, 330);
            input_image = way_filt.Apply(input_image);
            p           = process_image;
            //threshold
            way_filt      = new Threshold(125);
            process_image = way_filt.Apply(process_image);


            //K-means
            process_image = kmean(process_image);


            //invert
            way_filt      = new Invert();
            process_image = way_filt.Apply(process_image);


            //liembt
            //UCM
            way_filt      = new Median();
            process_image = way_filt.Apply(process_image);

            //way_filt = new AdaptiveSmooth();
            //process_image = way_filt.Apply(process_image);

            //end liembt
            //filter k
            BlobsFiltering filter = new BlobsFiltering();

            filter.MinHeight = 25;//50
            filter.MinWidth  = 10;
            filter.MaxHeight = 100;
            filter.ApplyInPlace(process_image);
            //p = process_image;
            input_width  = process_image.Width;
            input_height = process_image.Height;
        }
        public ListBoxItem Save()
        {
            var minWidth  = (int)minWidthNumericUpDown.Value;
            var maxWidth  = (int)maxWidthNumericUpDown.Value;
            var minHeight = (int)minHeightNumericUpDown.Value;
            var maxHeight = (int)maxHeightNumericUpDown.Value;
            var filter    = new BlobsFiltering(minWidth, minHeight, maxWidth, maxHeight);
            var text      = $"BlobsFiltering ({minWidth}, {maxWidth} - {minHeight}, {maxHeight})";

            return(new ListBoxItem(text, filter));
        }
        public List <Bitmap> PreHandle2(Bitmap original)
        {
            var preOcr = new FiltersSequence(
                Grayscale.CommonAlgorithms.RMY,
                new BradleyLocalThresholding());

            var grayscale = preOcr.Apply(original);

            GrayImg.Source = Bitmap2BitmapImageSource(grayscale);

            var filter = new BlobsFiltering
            {
                CoupledSizeFiltering = true,
                MinHeight            = 6,
                MinWidth             = 6
            };
            var filterImage = filter.Apply(new Invert().Apply(grayscale));

            ThresholdImg.Source = Bitmap2BitmapImageSource(filterImage);

            var invertImg = new Invert().Apply(filterImage);

            DoneImg.Source = Bitmap2BitmapImageSource(invertImg);

            var labels = new ConnectedComponentsLabeling();

            labels.BlobCounter.ObjectsOrder = ObjectsOrder.XY;
            labels.Apply(filterImage);

            var bitmaps = new List <Bitmap>();

            for (int i = 0; i < labels.ObjectCount; i++)
            {
                var candidate = labels.BlobCounter.GetObjectsInformation()[i];
                var edgePoint = labels.BlobCounter.GetBlobsEdgePoints(candidate);
                labels.BlobCounter.ExtractBlobsImage(filterImage, candidate, false);
                if (candidate.Image != null)
                {
                    var charcter   = new Invert().Apply(candidate.Image.ToManagedImage());
                    var resizer    = new ResizeBilinear(10, 10);
                    var finalImage = resizer.Apply(charcter);
                    bitmaps.Add(finalImage);

                    TesseractEngine a = new TesseractEngine(@"./tessdata", "eng", EngineMode.TesseractAndCube);
                    Page            p = a.Process(finalImage);
                    TBlock.Text += p.GetText();
                }
            }
            return(bitmaps);
        }
Exemple #19
0
        Pen greenPen  = new Pen(Color.Green, 7);  //is answer


        //
        public Form1()
        {
            InitializeComponent();

            /*---filters---*/
            brightnessFilter = new BrightnessCorrection(brightnessLevel);
            invertFilter     = new Invert();
            smoothFilter     = new AdaptiveSmoothing(smoothFactor);
            thresholdFilter  = new Threshold(thresholdLevel);
            blobFilter       = new BlobsFiltering();

            /*---tools---*/
            blobCounter  = new BlobCounter();
            shapeChecker = new SimpleShapeChecker();
        }
Exemple #20
0
        public mFigureFilter(wDomain WidthRange, wDomain HeightRange, bool coupled)
        {
            Width  = WidthRange;
            Height = HeightRange;

            Coupled = coupled;

            BitmapType = BitmapTypes.GrayscaleBT709;

            Effect = new BlobsFiltering((int)Width.T0, (int)Height.T0, (int)Width.T1, (int)Height.T1);

            Effect.CoupledSizeFiltering = Coupled;

            filter = Effect;
        }
        private void extractLargestBlob()
        {
            ExtractBiggestBlob biggestBlob = new ExtractBiggestBlob();
            Bitmap             newImage    = biggestBlob.Apply(imageGot);

            int newImHeight = newImage.Height;
            int newImWidth  = newImage.Width;
            // create filter
            BlobsFiltering filter = new BlobsFiltering();

            filter.CoupledSizeFiltering = true;
            filter.MinWidth             = newImHeight;
            filter.MinHeight            = newImWidth;
            imageGot          = filter.Apply(imageGot);
            pictureBox1.Image = imageGot;
        }
Exemple #22
0
        private void filterBlobs()
        // Filter blobs
        {
            // Delare image
            Bitmap bmp = new Bitmap(pictureBox1.Image);
            // create filter
            BlobsFiltering filter = new BlobsFiltering();

            // configure filter
            filter.CoupledSizeFiltering = true;
            filter.MinWidth             = 70;
            filter.MinHeight            = 70;
            // apply the filter
            filter.ApplyInPlace(bmp);
            pictureBox1.Image = bmp;
        }
        //verilen sınır değerlerden küçük şekilleri göz ardı eder
        private void button5_Click(object sender, EventArgs e)
        {
            //filtre oluşturuldu
            BlobsFiltering filtre = new BlobsFiltering();

            //filtre ayarları yapıldı
            filtre.CoupledSizeFiltering = true;
            filtre.MinWidth             = 70;
            filtre.MinHeight            = 70;

            //burada bazıları ApplyInPlace() fonksiyonunu kullanıyor
            //ben Apply() fonksiyonunu kullanıyorum
            //ApplyInPlace() fonksiyonunu daha önce hiç kullanmadım, nasıl çalıştığınıda çözemedim zaten:)
            Bitmap newImage = filtre.Apply((Bitmap)pictureBox1.Image);

            pictureBox1.Image = newImage;
        }
Exemple #24
0
        private void InitFilters()
        {
            L_brownFilter = new ColorFiltering();
            D_brownFilter = new ColorFiltering();

            L_brownFilter.Red   = new IntRange(125, 140);
            L_brownFilter.Green = new IntRange(95, 110);
            L_brownFilter.Blue  = new IntRange(110, 130);

            D_brownFilter.Red   = new IntRange(55, 85);
            D_brownFilter.Green = new IntRange(45, 75);
            D_brownFilter.Blue  = new IntRange(45, 75);


            blobFilter = new BlobsFiltering();
            blobFilter.CoupledSizeFiltering = true;
            blobFilter.MinWidth             = 70;
            blobFilter.MinHeight            = 70;

            diffFilter = new Difference();
            diffFilter.OverlayImage = back;

            thresholdFilter = new Threshold(40);

            erosionFilter = new Erosion();

            edgeFilter = new Edges();

            openFilter = new Opening();

            pixelFilter = new Pixellate();

            morphFilter = new Morph();
            morphFilter.SourcePercent = 0.9;

            towardsFilter          = new MoveTowards();
            towardsFilter.StepSize = 10;

            blobCounter = new BlobCounter();
            blobGrabber = new ExtractBiggestBlob();
        }
Exemple #25
0
    public static Bitmap Limpar(Image img)
    {
        Bitmap   imagem    = new Bitmap(img);
        Bitmap   newBitmap = new Bitmap(imagem.Width, imagem.Height);
        Graphics g         = Graphics.FromImage(newBitmap);

        g.FillRectangle(Brushes.White, 0, 0, imagem.Width, imagem.Height);
        ColorMatrix colorMatrix = new ColorMatrix(
            new float[][]
        {
            new float[] { .3f, .3f, .3f, 0, 0 },
            new float[] { .59f, .59f, .59f, 0, 0 },
            new float[] { .11f, .11f, .11f, 0, 0 },
            new float[] { 0, 0, 0, 1, 0 },
            new float[] { 0, 0, 0, 0, 1 }
        });
        ImageAttributes attributes = new ImageAttributes();

        attributes.SetColorMatrix(colorMatrix);
        g.DrawImage(imagem, new Rectangle(0, (int)(imagem.Height * 0.1), imagem.Width, (int)(imagem.Height * 0.8)), 0, imagem.Height * 0.1f, imagem.Width, imagem.Height * 0.8f, GraphicsUnit.Pixel, attributes);
        g.Dispose();
        imagem = newBitmap;
        imagem = imagem.Clone(new Rectangle(0, 0, img.Width, img.Height), System.Drawing.Imaging.PixelFormat.Format24bppRgb);
        Erosion        erosion    = new Erosion();
        Dilatation     dilatation = new Dilatation();
        Invert         inverter   = new Invert();
        ColorFiltering cor        = new ColorFiltering();

        cor.Blue  = new AForge.IntRange(200, 255);
        cor.Red   = new AForge.IntRange(200, 255);
        cor.Green = new AForge.IntRange(200, 255);
        Opening            open = new Opening();
        BlobsFiltering     bc   = new BlobsFiltering();
        GaussianSharpen    gs   = new GaussianSharpen();
        ContrastCorrection cc   = new ContrastCorrection();

        bc.MinHeight = 3;
        FiltersSequence seq = new FiltersSequence(gs, inverter, open, inverter, bc, inverter, open, cc, cor, bc, inverter);

        return((Bitmap)seq.Apply(imagem));
    }
Exemple #26
0
 private static string ResoudreItalien(Bitmap captcha)
 {
     Bitmap imagem = captcha;
     imagem = imagem.Clone(new Rectangle(0, 0, captcha.Width, captcha.Height), System.Drawing.Imaging.PixelFormat.Format24bppRgb);
     Erosion erosion = new Erosion();
     Dilatation dilatation = new Dilatation();
     Invert inverter = new Invert();
     ColorFiltering cor = new ColorFiltering();
     cor.Blue = new AForge.IntRange(200, 255);
     cor.Red = new AForge.IntRange(200, 255);
     cor.Green = new AForge.IntRange(200, 255);
     Opening open = new Opening();
     BlobsFiltering bc = new BlobsFiltering();
     Closing close = new Closing();
     GaussianSharpen gs = new GaussianSharpen();
     ContrastCorrection cc = new ContrastCorrection();
     bc.MinHeight = 10;
     FiltersSequence seq = new FiltersSequence(gs, inverter, open, inverter, bc, inverter, open, cc, cor, bc, inverter);
     string reconhecido = OCRItalien((Bitmap)seq.Apply(imagem));
     return reconhecido;
 }
        public static Bitmap FormatImageRecaptcha(Bitmap imagem)
        {
            imagem = imagem.Clone(new Rectangle(0, 0, imagem.Width, imagem.Height), System.Drawing.Imaging.PixelFormat.Format24bppRgb);
            Erosion        erosion    = new Erosion();
            Dilatation     dilatation = new Dilatation();
            Closing        close      = new Closing();
            Invert         inverter   = new Invert();
            ColorFiltering cor        = new ColorFiltering();

            cor.Blue  = new AForge.IntRange(200, 255);
            cor.Red   = new AForge.IntRange(200, 255);
            cor.Green = new AForge.IntRange(200, 255);
            Opening        open = new Opening();
            BlobsFiltering bc   = new BlobsFiltering();

            bc.MinHeight = 30;                                  // chỉ bắt các đối tượng có chiều cao >=30
            GaussianSharpen    gs  = new GaussianSharpen(1, 2); // tăng độ đậm của chi tiết lên gấp đôi
            ContrastCorrection cc  = new ContrastCorrection();
            FiltersSequence    seq = new FiltersSequence(gs, inverter, open, inverter, bc, open, cc, bc, cor);

            return(seq.Apply(imagem));
        }
        private void kullanilacakcihaz_NewFrame(object sender, NewFrameEventArgs eventArgs)
        {
            Bitmap image  = (Bitmap)eventArgs.Frame.Clone();
            Bitmap image1 = (Bitmap)eventArgs.Frame.Clone();

            image             = new Mirror(false, true).Apply(image);
            görüntü_box.Image = image;
            EuclideanColorFiltering filter = new EuclideanColorFiltering();

            filter.CenterColor = new RGB(Color.FromArgb(red, green, blue)); // Algılanacak Renk ve merkez noktası bulunur.
            filter.Radius      = 80;
            filter.ApplyInPlace(image1);                                    //Filitre Çalıştırılır.
            cevreal(image1);                                                // Algilanan rengi Çevrçevelemek veya hedeflemek için gerekli Method.
            BlobsFiltering filter2 = new BlobsFiltering( );                 // Belirli Piksel Altındaki Görüntüler Alınmadı.

            filter2.CoupledSizeFiltering = true;
            filter2.MinWidth             = 100;
            filter2.MinHeight            = 60;
            filter2.ApplyInPlace(image1);
            image1            = new Mirror(false, true).Apply(image1);
            pictureBox2.Image = image1;
        }
        public Bitmap PreHandle(Bitmap b)
        {
            var bnew = new Bitmap(b.Width, b.Height, PixelFormat.Format24bppRgb);


            var g = Graphics.FromImage(bnew);

            g.DrawImage(b, 0, 0);
            g.Dispose();
            BppImg.Source = Bitmap2BitmapImageSource(b);
            //Gray
            //b = new Grayscale(0.2125, 0.7154, 0.0721).Apply(b);
            b = new Grayscale(0.11, 0.59, 0.3).Apply(b);
            GrayImg.Source = Bitmap2BitmapImageSource(b);

            b = new Threshold(179).Apply(b);
            ThresholdImg.Source = Bitmap2BitmapImageSource(b);

            b = new BlobsFiltering(1, 1, b.Width, b.Height).Apply(b);

            return(b);
        }
Exemple #30
0
        public static List <Bitmap> CutImages(Bitmap bitmap, Action <Bitmap> act = null)
        {
            Bitmap sourceBitmap = bitmap;
            Bitmap targetBitmap = (Bitmap)sourceBitmap.Clone();

            if (!AForge.Imaging.Image.IsGrayscale(targetBitmap))
            {
                targetBitmap = AForge.Imaging.Image.Clone(targetBitmap, PixelFormat.Format24bppRgb);
                targetBitmap = Grayscale.CommonAlgorithms.BT709.Apply(targetBitmap);
            }

            if (act == null)
            {
                targetBitmap = new Threshold(50).Apply(targetBitmap);
                Invert filter = new Invert();
                filter.ApplyInPlace(targetBitmap);

                BlobsFiltering bolbsfilter = new BlobsFiltering();
                bolbsfilter.CoupledSizeFiltering = true;
                bolbsfilter.MinWidth             = 4;
                bolbsfilter.MinHeight            = 4;
                bolbsfilter.ApplyInPlace(targetBitmap);

                Closing binary = new Closing();
                targetBitmap = binary.Apply(targetBitmap);
                filter.ApplyInPlace(targetBitmap);
            }
            else
            {
                act(targetBitmap);
            }


            var bit1 = Crop_Y(targetBitmap);
            var bit2 = Crop_X(bit1);

            return(ToResizeAndCenterIt(bit2));
        }