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

LogaritmicScaling() public method

Image histogram normalization using 10-base logarithm scaling
public LogaritmicScaling ( Bitmap OriginalImage ) : Bitmap
OriginalImage System.Drawing.Bitmap Original AGB image
return System.Drawing.Bitmap
        public Bitmap LogaritmicScaling(Bitmap OriginalImage)
        {
            Bitmap img = new Bitmap(OriginalImage.Width, OriginalImage.Height);

            int[,] r = RMatrix(OriginalImage);
            int[,] g = GMatrix(OriginalImage);
            int[,] b = BMatrix(OriginalImage);

            Double maxR = Convert.ToDouble(r.Cast<int>().Max());
            Double maxG = Convert.ToDouble(g.Cast<int>().Max());
            Double maxB = Convert.ToDouble(b.Cast<int>().Max());

            for (int i = 0; i < OriginalImage.Width; i++)
            {
                for (int j = 0; j < OriginalImage.Height; j++)
                {

                    Double aR = 255 / Math.Log10(1 + maxR);
                    int valueR = (int)(aR * Math.Log10(1 + OriginalImage.GetPixel(i, j).R));

                    Double aG = 255 / Math.Log10(1 + maxG);
                    int valueG = (int)(aG * Math.Log10(1 + OriginalImage.GetPixel(i, j).G));

                    Double aB = 255 / Math.Log10(1 + maxB);
                    int valueB = (int)(aB * Math.Log10(1 + OriginalImage.GetPixel(i, j).B));

                    Color p = Color.FromArgb(255, valueR, valueG, valueB);

                    img.SetPixel(i, j, p);
                }
            }

            return img;
        }