图像灰化
原图
灰化后
红化后
绿化后
蓝化后
方法有三种
1.最大值法——三个值中最大的
2.平均法-——三额值相加除三
3.加权值法——就是求亮度的公式
如果要其中一色只要把另外两色都变为0,灰的话都是一种颜色就好了
代码:
public static Bitmap TurnToGray(Bitmap b, PixelColor pixelColor) { ColorDelegate colorDelegate = (ref int red, ref int green, ref int blue) => { //Max(Max(red,green),blue) 最大值法 //(red+green+blue)/3 平均值法 int gray = (int)(red * 0.299 + green * 0.587 + blue * 0.114); //加权平均值法 red = pixelColor == PixelColor.Red || pixelColor == PixelColor.Light ? gray : 0; green = pixelColor == PixelColor.Green || pixelColor == PixelColor.Light ? gray : 0; blue = pixelColor == PixelColor.Blue || pixelColor == PixelColor.Light ? gray : 0; }; return LoopPixel(b, colorDelegate); }