LitDev.Engines.FIP.HistoramEqualization C# (CSharp) Method

HistoramEqualization() public method

Converts ARGB images to greyscale using luminance method and enhances contrast using equalization method.
public HistoramEqualization ( Bitmap OriginalImage ) : Bitmap
OriginalImage System.Drawing.Bitmap Original ARGB image
return System.Drawing.Bitmap
        public Bitmap HistoramEqualization(Bitmap OriginalImage)
        {
            Bitmap image = OriginalImage;

            int[] histogram = this.Histogram(image);
            int pixelCount = image.Width * image.Height;

            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 PSum = 0;

                    for (int i = 0; i < gs + 1; i++)
                    {
                        PSum += Convert.ToDouble(histogram[i]) / pixelCount;
                    }

                    int newgs = Convert.ToInt16(Math.Floor(255 * PSum));

                    image.SetPixel(m, n, Color.FromArgb(255, newgs, newgs, newgs));
                }
            }

            return image;
        }