灰度图像
一幅完整的图像,是由红色、绿色、蓝色三个通道组成的。红色、绿色、蓝色三个通道的缩览图都是以灰度显示的。用不同的灰度色阶来表示“ 红,绿,蓝”在图像中的比重。通道中的纯白,代表了该色光在此处为最高亮度,亮度级别是255。
通道是整个Photoshop显示图像的基础。色彩的变动,实际上就是间接在对通道灰度图进行调整。通道是Photoshop处理图像的核心部分,所有的色彩调整工具都是围绕在这个核心周围使用的。
灰度图像是一种具有从黑到白256级灰度色域或等级的单色图像。该图像中的每个像素用8位数据表示,因此像素点值介于黑白间的256种灰度中的一种。该图像只有灰度等级,而没有颜色的变化。在Photoshop中,将灰度图像作为一种颜色通道的数字图像。
在计算机领域中,灰度数字图像是每个像素只有一个采样颜色的图像。这类图像通常显示为从最暗黑色到最亮的白色的灰度,尽管理论上这个采样可以任何颜色的不同深浅,甚至可以是不同亮度上的不同颜色。灰度图像与黑白图像不同,在计算机图像领域中黑白图像只有黑色与白色两种颜色;灰度图像在黑色与白色之间还有许多级的颜色深度。但是,在数字图像领域之外,“黑白图像”也表示“灰度图像”,例如灰度的照片通常叫做“黑白照片”。在一些关于数字图像的文章中单色图像等同于灰度图像,在另外一些文章中又等同于黑白图像。
灰度与灰度图像
灰度也可以认为是亮度,简单说就是色彩的深浅程度。
实际上在我们的日常生活中,通过三原色色彩深浅的组合,可以组成各种不同的颜色。产品能够展现的灰度数量越多,也就意味着这款产品的色彩表现力更加丰富,能够实现更强的色彩层次。例如三原色16级灰度,能显示的颜色就是16×16×16=4096色。不过目前的产品256级灰度已经非常地普遍了。
所谓颜色或灰度级指黑白显示器中显示像素点的亮暗差别,在彩色显示器中表现为颜色的不同,灰度级越多,图像层次越清楚逼真。灰度级取决于每个像素对应的刷新存储单元的位数和显示器本身的性能。如每个象素的颜色用16位二进制数表示,我们就叫它16位图,它可以表达2的16次方即65536种颜色。如每一个象素采用24位二进制数表示,我们就叫它24位图,它可以表达2的24次方即16777216种颜色。
灰度就是没有色彩,RGB色彩分量全部相等。
如果是一个二值灰度图象,它的象素值只能为0或1,我们说它的灰度级为2。用个例子来说明吧:一个256级灰度的图象,RGB(100,100,100)就代表灰度为100,RGB(50,50,50)代表灰度为50。
灰度是指黑白图像中点的颜色深度,范围一般从0到255,白色为255 ,黑色为0,故黑白图片也称灰度图像,在医学、图像识别领域有很广泛的用途
彩色图象的灰度其实在转化为黑白图像后的像素值(是一种广义的提法),转化的方法看应用的领域而定,一般按加权的方法转换,R , G ,B 的比一般为3:6:1。
任何颜色都有红、绿、蓝三原色组成,假如原来某点的颜色为RGB(R,G,B),那么,我们可以通过下面几种方法,将其转换为灰度:
1.浮点算法:Gray=R*0.3+G*0.59+B*0.11
2.整数方法:Gray=(R*30+G*59+B*11)/100
3.移位方法:Gray =(R*28+G*151+B*77)>>8;
4.平均值法:Gray=(R+G+B)/3;
5.仅取绿色:Gray=G;
通过上述任一种方法求得Gray后,将原来的RGB(R,G,B)中的R,G,B统一用Gray替换,形成新的颜色RGB(Gray,Gray,Gray),用它替换原来的RGB(R,G,B)就是灰度图了。
灰度化
在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫灰度值,因此,灰度图像每个像素只需一个字节存放灰度值(又称强度值、亮度值),灰度范围为0-255。一般有以下四种方法对彩色图像进行灰度化:
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)处的灰度值。如图4-1的彩色图像转为4-2三种灰度图。
图4-1 彩色图像
(a)R分量灰度图 (b)G分量灰度图 (c)B分量灰度图
图4-2 彩色图的三分量灰度图
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))
图像的灰度化原理和实现
一、图像的灰度化处理的基本原理
将彩色图像转化成为灰度图像的过程成为图像的灰度化处理。彩色图像中的每个像素的颜色有R、G、B三个分量决定,而每个分量有255中值可取,这样一个像素点可以有1600多万(255*255*255)的颜色的变化范围。而灰度图像是R、G、B三个分量相同的一种特殊的彩色图像,其一个像素点的变化范围为255种,所以在数字图像处理种一般先将各种格式的图像转变成灰度图像以使后续的图像的计算量变得少一些。灰度图像的描述与彩色图像一样仍然反映了整幅图像的整体和局部的色度和亮度等级的分布和特征。图像的灰度化处理可用两种方法来实现。
第一种方法使求出每个像素点的R、G、B三个分量的平均值,然后将这个平均值赋予给这个像素的三个分量。
第二种方法是根据YUV的颜色空间中,Y的分量的物理意义是点的亮度,由该值反映
亮度等级,根据RGB和YUV颜色空间的变化关系可建立亮度Y与R、G、B三个颜色分量的对应:Y=0.3R+0.59G+0.11B,以这个亮度值表达图像的灰度值。
二、用Delphi进行图像灰度化的实现:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
p:PByteArray;
//PByteArray的定义格式
//PByteArray = ^TByteArray;
//TByteArray = array[0..32767] of Byte;
ChangedBmp : Tbitmap;
gray,x,y:integer;
TestBMP : Tbitmap; // 处理过程中位图
begin
TestBMP:=Tbitmap.Create;
ChangedBmp:=Tbitmap.Create;
TestBMP.Assign(image1.Picture);
for y := 0 to TestBMP.Height - 1 do
begin
//获取每一行象素信息
p := TestBMP.scanline[y];
for x := 0 to TestBMP.Width - 1 do
begin
//这里采用YUV与RGB颜色空间变换的方法,即 Y=0.3R+0.59G+0.11B
Gray := Round(p[3 * x + 2] * 0.3 + p[3 * x + 1] * 0.59
+ p[3 * x] * 0.11);
//由于是24位真彩色,故一个像素点为三个字节
p[3 * x + 2] := byte(Gray);
p[3 * x + 1] := byte(Gray);
p[3 * x] := byte(Gray);
//Gray的值必须在0~255之间
end;
ChangedBmp.Assign(TestBMP);
PaintBox1.Canvas.CopyMode:=srccopy;
PaintBox1.Canvas.Draw(0,0,ChangedBmp);//用PaintBox控件重新绘制图像;
end;
三、注意事项:
程序申请了TestBMP、WillbeChangedBmp,所以在程序初始化的时候,要注意创建:
TestBMP:=Tbitmap.Create;
ChangedBmp:=Tbitmap.Create;
程序结束后注意要把TestBMP.Destory和ChangedBmp.Destory;
四、效果 //如下的效果图我作为转载者就不贴出来的,图中的人物是文章的原创作者吧。
PS中什么是灰度图像?什么是RGB图像?
所谓灰度色,就是指纯白、纯黑以及两者中的一系列从黑到白的过渡色。我们平常说所的黑白照片、黑白电视,实际上都应该称为灰度色才确切。灰度色中不包含任何色相,即不存在红色、黄色这样的颜色。但灰度隶属于RGB色域(色域指色彩范围)。 灰度的通常表示方法是百分比,范围从0%到100%。Photoshop中只能输入整数,在Illustrator和GoLive允许输入小数百分比。注意这个百分比是以纯黑为基准的百分比。与RGB正好相反,百分比越高颜色越偏黑,百分比越低颜色越偏白。灰度最高相当于最高的黑,就是纯黑。灰度最低相当于最低的黑,也就是“没有黑”,那就是纯白。 既然灰度和RGB一样,是有数值的,那么这个数值和百分比是怎么换算的?比如18%的灰度,是256级灰度中的哪一级呢?是否是256x18%呢? 没错,灰度的数值和百分比的换算就是相乘后的近似值,由于灰度与RGB是“黑白颠倒”的,所以18%的灰度等于82%的RGB亮度。256 x 82% = 209.92,近似算作210,我们可以先在灰度滑块选择18%,再切换到RGB滑块看数值。 印刷品与网页的区别在于色彩模式不同,印刷品必须是CMYK色彩模式,而网页主要使用RGB色彩模式。Photoshop的色彩管理功能主要是针对印刷品的,而我们目前针对网页,因此可以关闭这个功能。不用担心,即使不了解色彩管理的具体内容和灰度的标准,也不影响学习和操作。 虽然灰度共有256级,但是由于Photoshop的灰度滑块只能输入整数百分比,因此实际上从灰度滑块中只能选择出101种(0%也算一种)灰度。大家可以在灰度滑块中输入递增的数值然后切换到RGB滑块察看,可以看到:0%的灰度RGB数值是255,255,255;1%灰度的RGB数值是253,253,253;2%灰度RGB值为250,250,250。也就是说,252,252,252这样的灰度是无法用Photoshop的灰度滑块选中的。