///------------灰度图处理计算方法--------------//
///------浮点算法:Gray=R*0.3+G*0.59+B*0.11----//
///------整数方法:Gray=(R*30+G*59+B*11)/100---//
///------移位方法:Gray =(R*28+G*151+B*77)>>8--//
///------平均值法:Gray=(R+G+B)/3------------//
///------仅取绿色:Gray=G----------------------//

View Code
 1         /// <summary>
 2         /// 图像灰度处理
 3         /// </summary>
 4         /// <param name="style">处理方式</param>
 5         public  Bitmap GrayImage(string style)
 6         {
 7             Bitmap bmp = new Bitmap(this.pbOld.Image);
 8             Bitmap newBmp = new Bitmap(this.pbOld.Image);
 9             Color color = new Color();
10             Color newColor;
11             Byte r, g, b, gray=0;
12 
13             for (int i = 0; i < bmp.Width; i++)
14             {
15                 for (int j = 0; j < bmp.Height; j++)
16                 {
17                     //获取颜色
18                     color = bmp.GetPixel(i, j);
19                     r = color.R;
20                     g = color.G;
21                     b = color.B;
22                     switch (style)
23                     { 
24                         case "move":
25                             //采用移位运算
26                             gray = (Byte)((r * 19596 + g * 38469 + b * 7472) >> 16);
27                             break;
28                         case "float":
29                             gray = (Byte)(r * 0.3 + g * 0.59 + b * 0.11);
30                             break;
31                         case "int":
32                             gray=(Byte)((r*30+g*59+b*11)/100);
33                             break;
34                         case "avg":
35                             gray=(Byte)((r+g+b)/3);
36                             break;
37                         case "green":
38                             gray = g;
39                             break;
40                     }
41                     
42                     newColor = Color.FromArgb(gray, gray, gray);
43                     newBmp.SetPixel(i, j, newColor);
44                 }
45             }
46             return newBmp;
47         }
posted on 2012-05-11 14:13  捣乃忒  阅读(199)  评论(0编辑  收藏  举报