灰度化,在RGB模型中,如果R=G=B時,則彩色表示一種灰度顏色,其中R=G=B的值叫灰度值,因此,灰度圖像每個像素只需一個字節(jié)存放灰度值(又稱強度值、亮度值),灰度范圍為0-255,0%的灰度RGB數(shù)值是255,255,255;1%灰度的RGB數(shù)值是253,253,253;2%灰度RGB值為250,250,250。一般有分量法 最大值法、平均值法、加權(quán)平均法四種方法對彩色圖像進行灰度化。
灰度圖像與黑白圖像不同,在計算機圖像領(lǐng)域中黑白圖像只有黑白兩種顏色,灰度圖像在黑色與白色之間還有許多級的顏色深度。
1.分量法
將彩色圖像中的三分量的亮度作為三個灰度圖像的灰度值,可根據(jù)應(yīng)用需要選取一種灰度圖像。
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)為轉(zhuǎn)換后的灰度圖像在(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.加權(quán)平均法
根據(jù)重要性及其它指標,將三個分量以不同的權(quán)值進行加權(quán)平均。由于人眼對綠色的敏感最高,對藍色敏感最低,因此,按下式對RGB三分量進行加權(quán)平均能得到較合理的灰度圖像。
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);
}