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))); }
// 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; }
private void bWToolStripMenuItem_Click(object sender, EventArgs e) { if (pictureBox1.Image != null) { cashBack.Push(image); } Filters filter = new GrayScaleFilter(); backgroundWorker1.RunWorkerAsync(filter); }
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); }
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); }
private void оттенкиСерогоToolStripMenuItem_Click(object sender, EventArgs e) { Filters filter = new GrayScaleFilter(); backgroundWorker1.RunWorkerAsync(filter); }
public static IPicture ApplyGrayScale(this IPicture self) { self = new GrayScaleFilter(self); return(self); }
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; }