验证码识别系列之图片灰度化的方法

废话不多说了,直接进入正题、、、

在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)。

posted @ 2012-11-12 22:52  sam_wen  阅读(481)  评论(0编辑  收藏  举报