灰度化

Shams ·
更新时间:2024-11-15
· 614 次阅读

灰度化,在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫灰度值,因此,灰度图像每个像素只需一个字节存放灰度值(又称强度值、亮度值),灰度范围为0-255,0%的灰度RGB数值是255,255,255;1%灰度的RGB数值是253,253,253;2%灰度RGB值为250,250,250。一般有分量法 最大值法、平均值法、加权平均法四种方法对彩色图像进行灰度化。

灰度图像与黑白图像不同,在计算机图像领域中黑白图像只有黑白两种颜色,灰度图像在黑色与白色之间还有许多级的颜色深度。

1.分量法

将彩色图像中的三分量的亮度作为三个灰度图像的灰度值,可根据应用需要选取一种灰度图像。

f1(i,j)=R(i,j)    f2(i,j)=G(i,j)     f3(i,j)=B(i,j)

其中fk(i,j)(k=1,2,3)为转换后的灰度图像在(i,j)处的灰度值。

2.最大值法

将彩色图像中的三分量亮度的最大值作为灰度图的灰度值。

f(i,j)=max(R(i,j),G(i,j),B(i,j))

3.平均值法

将彩色图像中的三分量亮度求平均得到一个灰度值。

f(i,j)=(R(i,j)+G(i,j)+B(i,j)) /3

4.加权平均法

根据重要性及其它指标,将三个分量以不同的权值进行加权平均。由于人眼对绿色的敏感最高,对蓝色敏感最低,因此,按下式对RGB三分量进行加权平均能得到较合理的灰度图像。

f(i,j)=0.30R(i,j)+0.59G(i,j)+0.11B(i,j)

precision highp float; varying vec2 vTexCoord; uniform sampler2D uInputTex; void main() { vec3 texel = texture2D(uInputTex, vTexCoord).rgb; texel = vec3(dot(vec3(0.3, 0.59, 0.11), texel)); gl_FragColor = vec4(texel, 1.0); }
作者:黑夜DE彩虹



灰度化

需要 登录 后方可回复, 如果你还没有账号请 注册新账号