public Bitmap ContrastStretching(Bitmap OriginalImage)
{
Bitmap image = OriginalImage;
int RMin = 0;
int RMax = 255;
int min = this.MinBrightness(image);
int max = this.MaxBrightness(image);
for (int m = 0; m < image.Width; m++)
{
for (int n = 0; n < image.Height; n++)
{
Color pixel = image.GetPixel(m, n);
int gs = (int)((pixel.R * 0.3) + (pixel.G * 0.59) + (pixel.B * 0.11));
Double tmp = (Convert.ToDouble(gs - min) / Convert.ToDouble(max - min)) * (RMax - RMin) + RMin;
int newgs = (int)tmp;
image.SetPixel(m, n, Color.FromArgb(255, newgs, newgs, newgs));
}
}
return image;
}