彩色图像的黑白处理通常有三种方法解决:最大值法、平均值发、加权平均值。
public Bitmap BlackWhiteDel(Image image) { int width = image.Width; int height = image.Height; Bitmap temp = new Bitmap( width, height ); Bitmap bitmap = (Bitmap)image; Color pixel; for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { int r, g, b, avg; pixel = bitmap.GetPixel( x, y ); avg=(pixel.R+pixel.G+pixel.B)/3; r = avg; g = avg; b = avg; temp.SetPixel( x, y, Color.FromArgb( r, g, b ) ); } } return temp; }
max=avg = Math.Max( pixel.R, pixel.G ) > pixel.B ? Math.Max( pixel.R, pixel.G ) : pixel.B; //最大值
avg = (int)(0.11 * pixel.R + 0.55 * pixel.G + 0.34 * pixel.B) / 3;//加权平均值