让代码更简单

C#GRB图转灰度图算法

重要:本文最后更新于2018-11-13 13:52:12,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗

颜色在计算机中以RGB的形式展示,RGB想必大家都清楚,三原色,这三种颜色可以调配出各种颜色。灰度图确只有黑白两种颜色(其实不是),二值化的图才是两种色。

灰度图的像素颜色不同于彩色图,灰度图的像素颜色RGB值都是一样的,其RGB值算法如下:

Gary=R * 0.3 +G * 0.59 + B * 0.11

由上述公式就能将彩色图转换为灰度图了,只需遍历图片像素,将每个像素值重置为我们计算出来的灰度值即可,下面是C#代码:

复制
 /// <summary>
 /// 图像灰度化
 /// </summary>
 /// <param name="bmp"></param>
 /// <returns></returns>
 public static Bitmap ToGray(Bitmap bmp)
 {
 for (int i = 0; i < bmp.Width; i++)
 {
 for (int j = 0; j < bmp.Height; j++)
 {
 //获取该点的像素的RGB的颜色
 Color color = bmp.GetPixel(i, j);
 //利用公式计算灰度值
 int gray = (int)(color.R * 0.3 + color.G * 0.59 + color.B * 0.11);
 Color newColor = Color.FromArgb(gray, gray, gray);
 bmp.SetPixel(i, j, newColor);
 }
 }
 return bmp;
 }

代码很简单,就是一个循环,效果如下:

C#GRB图转灰度图算法

C#GRB图转灰度图算法

C#GRB图转灰度图算法

C#GRB图转灰度图算法

感觉很棒!可以赞赏支持我哟~

0 打赏

评论 (0)

登录后评论
QQ咨询 邮件咨询 狗哥推荐