Exemplo n.º 1
0
        public void GetGrayscalePixel()
        {
            originalPicture[0, 0] = new Pixel(10, 20, 30);
            resultPicture         = new GrayScaleFilter().ChangeImage(originalPicture, 100);

            Assert.IsTrue(resultPicture[0, 0].Equals(new Pixel(20, 20, 20)));
        }
Exemplo n.º 2
0
        // NET HIKIPURO gure-suke-ru
        private void button12_Click(object sender, System.EventArgs e)
        {
            Bitmap bitmap = new Bitmap(pictureBox1.Image);

            bitmap = GrayScaleFilter.Apply(bitmap);
            pictureBox2.SizeMode = PictureBoxSizeMode.Zoom;
            pictureBox2.Image    = bitmap;
        }
Exemplo n.º 3
0
        private void bWToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (pictureBox1.Image != null)
            {
                cashBack.Push(image);
            }
            Filters filter = new GrayScaleFilter();

            backgroundWorker1.RunWorkerAsync(filter);
        }
Exemplo n.º 4
0
        private void ОттенокСерогоToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var bm = new Bitmap(pictureBox1.Image);

            old_image = image;
            image     = bm;
            Filters filter = new GrayScaleFilter();

            backgroundWorker1.RunWorkerAsync(filter);
        }
Exemplo n.º 5
0
        private void гистограммаToolStripMenuItem_Click(object sender, EventArgs e)
        {
            _ = new GrayScaleFilter();
            int[][] histogram = new int[3][];
            histogram[0] = new int[256];
            histogram[1] = new int[256];
            histogram[2] = new int[256];
            for (int x = 0; x < image.Width; x++)
            {
                for (int y = 0; y < image.Height; y++)
                {
                    Color sourceColor = image.GetPixel(x, y);
                    histogram[0][sourceColor.R]++;
                    histogram[1][sourceColor.G]++;
                    histogram[2][sourceColor.B]++;
                }
            }
            Form2 histogramView = new Form2();

            histogramView.ShowRGBHistogram(histogram);
        }
Exemplo n.º 6
0
        private void оттенкиСерогоToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Filters filter = new GrayScaleFilter();

            backgroundWorker1.RunWorkerAsync(filter);
        }
Exemplo n.º 7
0
 public static IPicture ApplyGrayScale(this IPicture self)
 {
     self = new GrayScaleFilter(self);
     return(self);
 }
Exemplo n.º 8
0
        public static IApplicableFilter Construct(List<FilterType> filters)
        {
            IApplicableFilter toBeDecoratedFilter = null;

            foreach (FilterType filter in filters)
            {
                switch (filter.fType)
                {
                    case FilterType.Type.ClearBorderFilter:
                        toBeDecoratedFilter = new ClearBorderFilter(toBeDecoratedFilter);
                        break;
                    case FilterType.Type.FillObjectFilter:
                        toBeDecoratedFilter = new FillObjectFilter(toBeDecoratedFilter);
                        break;

                    case FilterType.Type.ErosionKernel:
                        toBeDecoratedFilter = new ErosionKernel(toBeDecoratedFilter);
                        break;
                    case FilterType.Type.DilationKernel:
                        toBeDecoratedFilter = new DilationKernel(toBeDecoratedFilter);
                        break;

                    case FilterType.Type.GrayscaleFilter:
                        toBeDecoratedFilter = new GrayScaleFilter(toBeDecoratedFilter);
                        break;
                    case FilterType.Type.GrayscaleKernel:
                        toBeDecoratedFilter = new GrayScaleKernel(toBeDecoratedFilter);
                        break;
                    case FilterType.Type.InvertFilter:
                        toBeDecoratedFilter = new InvertFilter(toBeDecoratedFilter);
                        break;
                    case FilterType.Type.DoNothingKernel:
                        toBeDecoratedFilter = new DoNothingKernel(toBeDecoratedFilter, 3, 3);
                        break;

                    case FilterType.Type.DerivativeKernelX:
                        toBeDecoratedFilter = new DerivativeKernel(toBeDecoratedFilter, DerivativeType.x);
                        break;
                    case FilterType.Type.DerivativeKernelY:
                        toBeDecoratedFilter = new DerivativeKernel(toBeDecoratedFilter, DerivativeType.y);
                        break;
                    case FilterType.Type.DerivativeKernelXY:
                        toBeDecoratedFilter = new DerivativeKernel(toBeDecoratedFilter, DerivativeType.xy);
                        break;

                    case FilterType.Type.ApproximationCompassOperation:
                        toBeDecoratedFilter = new CompassOperation(toBeDecoratedFilter, CompassType.Approximation);
                        break;
                    case FilterType.Type.IsotropicCompassOperation:
                        toBeDecoratedFilter = new CompassOperation(toBeDecoratedFilter, CompassType.Isotropic);
                        break;
                    case FilterType.Type.KirschCompassOperation:
                        toBeDecoratedFilter = new CompassOperation(toBeDecoratedFilter, CompassType.Kirsch);
                        break;
                    case FilterType.Type.PrewittCompassOperation:
                        toBeDecoratedFilter = new CompassOperation(toBeDecoratedFilter, CompassType.Prewitt);
                        break;
                    case FilterType.Type.SobelCompassOperation:
                        toBeDecoratedFilter = new CompassOperation(toBeDecoratedFilter, CompassType.Sobel);
                        break;

                    //case FilterType.Type.PrewittKernelN:
                    //    toBeDecoratedFilter = new PrewittKernel(toBeDecoratedFilter, Direction.North);
                    //    break;
                    //case FilterType.Type.PrewittKernelNE:
                    //    toBeDecoratedFilter = new PrewittKernel(toBeDecoratedFilter, Direction.NorthEast);
                    //    break;
                    //case FilterType.Type.PrewittKernelE:
                    //    toBeDecoratedFilter = new PrewittKernel(toBeDecoratedFilter, Direction.East);
                    //    break;
                    //case FilterType.Type.PrewittKernelSE:
                    //    toBeDecoratedFilter = new PrewittKernel(toBeDecoratedFilter, Direction.SouthEast);
                    //    break;
                    //case FilterType.Type.PrewittKernelS:
                    //    toBeDecoratedFilter = new PrewittKernel(toBeDecoratedFilter, Direction.South);
                    //    break;
                    //case FilterType.Type.PrewittKernelSW:
                    //    toBeDecoratedFilter = new PrewittKernel(toBeDecoratedFilter, Direction.SouthWest);
                    //    break;
                    //case FilterType.Type.PrewittKernelW:
                    //    toBeDecoratedFilter = new PrewittKernel(toBeDecoratedFilter, Direction.West);
                    //    break;
                    //case FilterType.Type.PrewittKernelNW:
                    //    toBeDecoratedFilter = new PrewittKernel(toBeDecoratedFilter, Direction.NorthWest);
                    //    break;

                    //case FilterType.Type.ApproximationKernelN:
                    //    toBeDecoratedFilter = new ApproximationKernel(toBeDecoratedFilter, Direction.North);
                    //    break;
                    //case FilterType.Type.ApproximationKernelNE:
                    //    toBeDecoratedFilter = new ApproximationKernel(toBeDecoratedFilter, Direction.NorthEast);
                    //    break;
                    //case FilterType.Type.ApproximationKernelE:
                    //    toBeDecoratedFilter = new ApproximationKernel(toBeDecoratedFilter, Direction.East);
                    //    break;
                    //case FilterType.Type.ApproximationKernelSE:
                    //    toBeDecoratedFilter = new ApproximationKernel(toBeDecoratedFilter, Direction.SouthEast);
                    //    break;
                    //case FilterType.Type.ApproximationKernelS:
                    //    toBeDecoratedFilter = new ApproximationKernel(toBeDecoratedFilter, Direction.South);
                    //    break;
                    //case FilterType.Type.ApproximationKernelSW:
                    //    toBeDecoratedFilter = new ApproximationKernel(toBeDecoratedFilter, Direction.SouthWest);
                    //    break;
                    //case FilterType.Type.ApproximationKernelW:
                    //    toBeDecoratedFilter = new ApproximationKernel(toBeDecoratedFilter, Direction.West);
                    //    break;
                    //case FilterType.Type.ApproximationKernelNW:
                    //    toBeDecoratedFilter = new ApproximationKernel(toBeDecoratedFilter, Direction.NorthWest);
                    //    break;

                    //case FilterType.Type.IsotropicKernelN:
                    //    toBeDecoratedFilter = new IsotropicKernel(toBeDecoratedFilter, Direction.North);
                    //    break;
                    //case FilterType.Type.IsotropicKernelNE:
                    //    toBeDecoratedFilter = new IsotropicKernel(toBeDecoratedFilter, Direction.NorthEast);
                    //    break;
                    //case FilterType.Type.IsotropicKernelE:
                    //    toBeDecoratedFilter = new IsotropicKernel(toBeDecoratedFilter, Direction.East);
                    //    break;
                    //case FilterType.Type.IsotropicKernelSE:
                    //    toBeDecoratedFilter = new IsotropicKernel(toBeDecoratedFilter, Direction.SouthEast);
                    //    break;
                    //case FilterType.Type.IsotropicKernelS:
                    //    toBeDecoratedFilter = new IsotropicKernel(toBeDecoratedFilter, Direction.South);
                    //    break;
                    //case FilterType.Type.IsotropicKernelSW:
                    //    toBeDecoratedFilter = new IsotropicKernel(toBeDecoratedFilter, Direction.SouthWest);
                    //    break;
                    //case FilterType.Type.IsotropicKernelW:
                    //    toBeDecoratedFilter = new IsotropicKernel(toBeDecoratedFilter, Direction.West);
                    //    break;
                    //case FilterType.Type.IsotropicKernelNW:
                    //    toBeDecoratedFilter = new IsotropicKernel(toBeDecoratedFilter, Direction.NorthWest);
                    //    break;

                    //case FilterType.Type.SobelKernelN:
                    //    toBeDecoratedFilter = new SobelKernel(toBeDecoratedFilter, Direction.North);
                    //    break;
                    //case FilterType.Type.SobelKernelNE:
                    //    toBeDecoratedFilter = new SobelKernel(toBeDecoratedFilter, Direction.NorthEast);
                    //    break;
                    //case FilterType.Type.SobelKernelE:
                    //    toBeDecoratedFilter = new SobelKernel(toBeDecoratedFilter, Direction.East);
                    //    break;
                    //case FilterType.Type.SobelKernelSE:
                    //    toBeDecoratedFilter = new SobelKernel(toBeDecoratedFilter, Direction.SouthEast);
                    //    break;
                    //case FilterType.Type.SobelKernelS:
                    //    toBeDecoratedFilter = new SobelKernel(toBeDecoratedFilter, Direction.South);
                    //    break;
                    //case FilterType.Type.SobelKernelSW:
                    //    toBeDecoratedFilter = new SobelKernel(toBeDecoratedFilter, Direction.SouthWest);
                    //    break;
                    //case FilterType.Type.SobelKernelW:
                    //    toBeDecoratedFilter = new SobelKernel(toBeDecoratedFilter, Direction.West);
                    //    break;
                    //case FilterType.Type.SobelKernelNW:
                    //    toBeDecoratedFilter = new SobelKernel(toBeDecoratedFilter, Direction.NorthWest);
                    //    break;

                    case FilterType.Type.NormalizingKernel3:
                        toBeDecoratedFilter = new NormalizingKernel(toBeDecoratedFilter, 3, 3);
                        break;
                    case FilterType.Type.NormalizingKernel5:
                        toBeDecoratedFilter = new NormalizingKernel(toBeDecoratedFilter, 5, 5);
                        break;
                    case FilterType.Type.NormalizingKernel7:
                        toBeDecoratedFilter = new NormalizingKernel(toBeDecoratedFilter, 7, 7);
                        break;
                    case FilterType.Type.NormalizingKernel1x25:
                        toBeDecoratedFilter = new NormalizingKernel(toBeDecoratedFilter, 1, 25);
                        break;
                    case FilterType.Type.NormalizingKernel25x1:
                        toBeDecoratedFilter = new NormalizingKernel(toBeDecoratedFilter, 25, 1);
                        break;
                    case FilterType.Type.NormalizingKernel25:
                        toBeDecoratedFilter = new NormalizingKernel(toBeDecoratedFilter, 25, 25);
                        break;

                    case FilterType.Type.HighPassFilter32:
                        toBeDecoratedFilter = new HighPassFilter(toBeDecoratedFilter, 32);
                        break;
                    case FilterType.Type.HighPassFilter64:
                        toBeDecoratedFilter = new HighPassFilter(toBeDecoratedFilter, 64);
                        break;
                    case FilterType.Type.HighPassFilter96:
                        toBeDecoratedFilter = new HighPassFilter(toBeDecoratedFilter, 96);
                        break;
                    case FilterType.Type.HighPassFilter128:
                        toBeDecoratedFilter = new HighPassFilter(toBeDecoratedFilter, 128);
                        break;
                    case FilterType.Type.HighPassFilter160:
                        toBeDecoratedFilter = new HighPassFilter(toBeDecoratedFilter, 160);
                        break;
                    case FilterType.Type.HighPassFilter192:
                        toBeDecoratedFilter = new HighPassFilter(toBeDecoratedFilter, 192);
                        break;
                    case FilterType.Type.HighPassFilter224:
                        toBeDecoratedFilter = new HighPassFilter(toBeDecoratedFilter, 224);
                        break;
                    case FilterType.Type.HighPassFilter256:
                        toBeDecoratedFilter = new HighPassFilter(toBeDecoratedFilter, 254);
                        break;

                    case FilterType.Type.LowPassFilter32:
                        toBeDecoratedFilter = new LowPassFilter(toBeDecoratedFilter, 32);
                        break;
                    case FilterType.Type.LowPassFilter64:
                        toBeDecoratedFilter = new LowPassFilter(toBeDecoratedFilter, 64);
                        break;
                    case FilterType.Type.LowPassFilter96:
                        toBeDecoratedFilter = new LowPassFilter(toBeDecoratedFilter, 96);
                        break;
                    case FilterType.Type.LowPassFilter128:
                        toBeDecoratedFilter = new LowPassFilter(toBeDecoratedFilter, 128);
                        break;
                    case FilterType.Type.LowPassFilter160:
                        toBeDecoratedFilter = new LowPassFilter(toBeDecoratedFilter, 160);
                        break;
                    case FilterType.Type.LowPassFilter192:
                        toBeDecoratedFilter = new LowPassFilter(toBeDecoratedFilter, 192);
                        break;
                    case FilterType.Type.LowPassFilter224:
                        toBeDecoratedFilter = new LowPassFilter(toBeDecoratedFilter, 224);
                        break;
                    case FilterType.Type.LowPassFilter256:
                        toBeDecoratedFilter = new LowPassFilter(toBeDecoratedFilter, 255);
                        break;

                    case FilterType.Type.ThresholdFilter32:
                        toBeDecoratedFilter = new ThresholdFilter(toBeDecoratedFilter, 32);
                        break;
                    case FilterType.Type.ThresholdFilter64:
                        toBeDecoratedFilter = new ThresholdFilter(toBeDecoratedFilter, 64);
                        break;
                    case FilterType.Type.ThresholdFilter96:
                        toBeDecoratedFilter = new ThresholdFilter(toBeDecoratedFilter, 96);
                        break;
                    case FilterType.Type.ThresholdFilter128:
                        toBeDecoratedFilter = new ThresholdFilter(toBeDecoratedFilter, 128);
                        break;
                    case FilterType.Type.ThresholdFilter160:
                        toBeDecoratedFilter = new ThresholdFilter(toBeDecoratedFilter, 160);
                        break;
                    case FilterType.Type.ThresholdFilter192:
                        toBeDecoratedFilter = new ThresholdFilter(toBeDecoratedFilter, 192);
                        break;
                    case FilterType.Type.ThresholdFilter224:
                        toBeDecoratedFilter = new ThresholdFilter(toBeDecoratedFilter, 224);
                        break;
                    case FilterType.Type.ThresholdFilter256:
                        toBeDecoratedFilter = new ThresholdFilter(toBeDecoratedFilter, 254);
                        break;
                    default:
                        break;
                }
            }

            return toBeDecoratedFilter;
        }