阈值就是某种状态变化的临界值,门限数值。阈值花是灰度图片转二值化图的一种常用方法。图像二值化处理在图像分割、边缘跟踪等诸多领域都要用到,属于预处理方法中的一种。
灰度阈值变换函数表达式
0 x<T
ƒ(x)= (T为指定的阈值)
255 x>=T
代码实现如下:
1 /// <summary> 2 /// 二值化带阈值 3 /// </summary> 4 /// <param name="bitmap"></param> 5 /// <param name="Threshold"></param> 6 /// <returns></returns> 7 public static Bitmap Binarization(Bitmap bitmap,int Threshold) 8 { 9 Bitmap refbitmap = (Bitmap)bitmap.Clone();//创建副本 10 int ImageWidth = bitmap.Width; 11 int ImageHeight = bitmap.Height; 12 for (int x = 0; x < ImageWidth; x++) 13 { 14 for (int y = 0; y < ImageHeight; y++) 15 { 16 Color Sourcecolor; 17 Sourcecolor = bitmap.GetPixel(x, y); 18 Color Deskcolor; 19 int gray = (Sourcecolor.R * 38 + Sourcecolor.G * 75 + Sourcecolor.B * 15) >> 7; //灰度转换 20 if (gray > Threshold) 21 { 22 Deskcolor = Color.FromArgb(255, 255, 255); 23 } 24 else { 25 Deskcolor = Color.FromArgb(0, 0, 0); 26 } 27 28 refbitmap.SetPixel(x, y, Deskcolor);//替换副本像素颜色 29 } 30 } 31 return refbitmap; 32 }
如有疑问,欢迎大家交流 QQ:1135692106