C#算RGB的平均值

算法:

            double[] a = new double[3] { 0, 0, 0 };

            Bitmap curBitmap = (Bitmap)Image.FromFile(fileName);

            int wide = curBitmap.Width;
            int height = curBitmap.Height;
            Color srcColor;
            double RR = 0;
            double GG = 0;
            double BB = 0;

            for (int y3 = 0; y3 < height; y3++)
            {
                for (int x3 = 0; x3 < wide; x3++)
                {
                    srcColor = curBitmap.GetPixel(x3, y3);
                    RR = RR + srcColor.R;
                    GG = GG + srcColor.G;
                    BB = BB + srcColor.B;
                }
            }

            a[0] = Math.Round(RR / (X * Y), 2);
            a[1] = Math.Round(GG / (X * Y), 2);
            a[2] = Math.Round(BB / (X * Y), 2);

            return a;

 

 

//另外AWB算法的公式:

Cb = (-0.16874 * RR_Aver) - (0.33126 * GG_Aver) + (0.5 * BB_Aver) + 128;
Cr = (0.5 * RR_Aver) - (0.41869 * GG_Aver) - (0.08131 * BB_Aver) + 128;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章