public Bitmap returntoColor(int[,] Mat, int[,] MatOrigin, Bitmap OriginalImage) { Bitmap ColorisedImage = new Bitmap(Mat.GetLength(0), Mat.GetLength(1)); for (int i = 0; i < Mat.GetLength(0); i++) { for (int j = 0; j < Mat.GetLength(1); j++) { double r = 0; double g = 0; double b = 0; Color c = OriginalImage.GetPixel(i, j); if (MatOrigin[i, j] != 0) { r = c.R * Mat[i, j] / MatOrigin[i, j]; g = c.G * Mat[i, j] / MatOrigin[i, j]; b = c.B * Mat[i, j] / MatOrigin[i, j]; } else { r = c.R * Mat[i, j]; g = c.G * Mat[i, j]; b = c.B * Mat[i, j]; } ImageProcessor.RangeColors(ref r, ref g, ref b); ColorisedImage.SetPixel(i, j, Color.FromArgb((int)r, (int)g, (int)b)); } } return(ColorisedImage); }
public void returntoColor() { ColorisedImage = new Bitmap(OriginalImage.Width, OriginalImage.Height); for (int i = 0; i < OriginalImage.Width; i++) { for (int j = 0; j < OriginalImage.Height; j++) { double r = 0; double g = 0; double b = 0; Color c = OriginalImage.GetPixel(i, j); if (MatOrigin[i, j] != 0) { r = c.R * Mat[i, j] / MatOrigin[i, j]; g = c.G * Mat[i, j] / MatOrigin[i, j]; b = c.B * Mat[i, j] / MatOrigin[i, j]; } else { r = c.R * Mat[i, j]; g = c.G * Mat[i, j]; b = c.B * Mat[i, j]; } ImageProcessor.RangeColors(ref r, ref g, ref b); ColorisedImage.SetPixel(i, j, Color.FromArgb((int)r, (int)g, (int)b)); } } }
public Bitmap updateImageContrast(int contrastValue) { contrast = contrastValue; Bitmap contrastedImage = ImageProcessor.CopyImage(ColorisedImage); double factor = (double)(259 * (contrastValue + 255)) / (double)(255 * (259 - contrastValue)); for (int r = 0; r < contrastedImage.Width; r++) { for (int c = 0; c < contrastedImage.Height; c++) { double red = contrastedImage.GetPixel(r, c).R; double green = contrastedImage.GetPixel(r, c).G; double blue = contrastedImage.GetPixel(r, c).B; red = (int)(factor * (red - 128) + 128); green = (int)(factor * (green - 128) + 128); blue = (int)(factor * (blue - 128) + 128); ImageProcessor.RangeColors(ref red, ref green, ref blue); contrastedImage.SetPixel(r, c, Color.FromArgb(contrastedImage.GetPixel(r, c).A, (int)red, (int)green, (int)blue)); } } PreviewImage contrastedColoredImage = new PreviewImage(contrastedImage, true); PreviewImage contrastedGreyImage = new PreviewImage(contrastedImage, false); if (isColorised) { Mat = contrastedColoredImage.Mat; GetViewedImage(); previewStages.Add(new PreviewState(stages, null, OriginalImage, ViewedImage, ColorisedImage, GrayscaleImage, CopyMat(), isColorised, brightness, contrast, saturation)); } else { Mat = contrastedGreyImage.Mat; GetViewedImage(); previewStages.Add(new PreviewState(stages, null, OriginalImage, ViewedImage, ColorisedImage, GrayscaleImage, CopyMat(), isColorised, brightness, contrast, saturation)); } return(contrastedImage); }