C#GRB图转灰度图算法

颜色在计算机中以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图转灰度图算法

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/241287.html

(0)
上一篇 2022年4月7日 00:27
下一篇 2022年4月7日 00:27

相关推荐

发表回复

登录后才能评论