验证码识别系列之图片灰度化的方法
废话不多说了,直接进入正题、、、
在RGB 模型中,如果R=G=B时候,则图片中彩色会表示一种灰度颜色,此时R=G=B 表示其灰度值,因此图片中的每一个像素都可以只用一个字段进行存储,灰度值的范围在0~255之间,在将图片灰度化的时候,一般有这四种方法。
第一种方法:
加权平均值 。根据重要性及其它指标,将三个分量以不同的权值进行加权平均。由于人眼对绿色的敏感最高,对蓝色敏感最低,因此,按下式对RGB三分量进行加权平均能得到较合理的灰度图像。f(i,j)=0.30R(i,j)+0.59G(i,j)+0.11B(i,j)),这个方法一是网上一些验证码灰度化时,比较常用的方法。这里我附上部分代码:
View Code
1 int rgb = Convert.ToInt32((double) (((0.3 * c.R) + (0.59 * c.G)) + (0.11 * c.B))); 2 return Color.FromArgb(rgb, rgb, rgb);
第二种方法:
取亮度最大的分量。将彩色图像中的三分量亮度的最大值作为灰度图的灰度值。f(i,j)=max(R(i,j),G(i,j),B(i,j))
第三种方法:
三个分量的平均值。将彩色图像中的三分量亮度求平均得到一个灰度图,f(i,j)=(R(i,j)+G(i,j)+B(i,j)) /3。
第四个方法
根据需求取其中一个分量最为灰度值,f1(i,j)=R(i,j) f2(i,j)=G(i,j) f3(i,j)=B(i,j)。