public void ApplyMask(double[][] maskH, double[][] maskV, int treshe = 0) { Color[][] colorsH = ImageExtension.GetolorMatrix(MaskApplier.ApplyMaskForAllChanales(BitmapImg, maskH, treshe)); Color[][] colorsV = ImageExtension.GetolorMatrix(MaskApplier.ApplyMaskForAllChanales(BitmapImg, maskV, treshe)); ResultImg = new Bitmap(BitmapImg); if (chanel == ColorChannel.All) { for (int i = 0; i < colorsH.Length; i++) { for (int j = 0; j < colorsH[0].Length; j++) { var r = Math.Sqrt((colorsH[i][j].R * colorsH[i][j].R) + (colorsV[i][j].R * colorsV[i][j].R)); var g = Math.Sqrt((colorsH[i][j].G * colorsH[i][j].G) + (colorsV[i][j].G * colorsV[i][j].G)); var b = Math.Sqrt((colorsH[i][j].B * colorsH[i][j].B) + (colorsV[i][j].B * colorsV[i][j].B)); ResultImg.SetPixel(i, j, Color.FromArgb(255, (byte)r, (byte)g, (byte)b)); } } } else { var initialColors = ImageExtension.GetolorMatrix(BitmapImg); for (int i = 0; i < colorsH.Length; i++) { for (int j = 0; j < colorsH[0].Length; j++) { var r = (chanel == ColorChannel.Red) ? Math.Sqrt((colorsH[i][j].R * colorsH[i][j].R) + (colorsV[i][j].R * colorsV[i][j].R)) : initialColors[i][j].R; var g = (chanel == ColorChannel.Green) ? Math.Sqrt((colorsH[i][j].G * colorsH[i][j].G) + (colorsV[i][j].G * colorsV[i][j].G)) : initialColors[i][j].G; var b = (chanel == ColorChannel.Blue) ? Math.Sqrt((colorsH[i][j].B * colorsH[i][j].B) + (colorsV[i][j].B * colorsV[i][j].B)) : initialColors[i][j].B; ResultImg.SetPixel(i, j, Color.FromArgb(255, (byte)r, (byte)g, (byte)b)); } } } var reHisto = HistogramCalc.GetHistogram(ResultImg, Chanel); var values = new ChartValues <ObservableValue>(); foreach (var item in reHisto) { values.Add(new ObservableValue(item)); } WorkCollection = new SeriesCollection { new ColumnSeries { Values = values } }; }
private ChartValues <ObservableValue> GetNewWorkHisto() { if (ResultImg != null) { var resWorkHisto = HistogramCalc.GetHistogram(ResultImg, Chanel); var workValues = new ChartValues <ObservableValue>(); foreach (var item in resWorkHisto) { workValues.Add(new ObservableValue(item)); } return(workValues); } return(null); }
private ChartValues <ObservableValue> GetNewHisto() { if (BitmapImg != null) { var reHisto = HistogramCalc.GetHistogram(BitmapImg, Chanel); var values = new ChartValues <ObservableValue>(); foreach (var item in reHisto) { values.Add(new ObservableValue(item)); } return(values); } return(null); }