真彩色与伪彩色的概念


真彩色简介  

       真彩色是指图像中的每个像素值都分成R、G、B三个基色分量,每个基色分量直接决定其色的强度,这样产生的色彩称为真彩色。

  计算机表示颜色也是用二进制。16位色的发色总数是65536色,也就是2的16次方;24位色被称为真彩色,它可以达到人眼分辨的极限,发色数是1677万多色,也就是2的24次方。但32位色就并非是2的32次方的发色数,它其实也是1677万多色,不过它增加了256阶颜色的灰度,为了方便称呼,就规定它为32位色。少量显卡能达到36位色,它是24位发色数再加512阶颜色灰度。

  至于32位色和16位色肉眼分辨不出来?其实如果你用两台品牌型号都一样的显示器,分辨调不同的色,就能看出区别,而只是一台机的反复转换就比较难分辨出来。如果你用的是WINDOWS XP,在WINDOWS启动时有个“欢迎使用”字样的界面,那里的兰色颜色过渡就很容易看出区别,16位色的颜色过渡很容易看出被分层了,不自然;而用32位色就相当柔和,过渡很自然。

真彩色解析

  真彩色(麦金塔电脑用户则为百万色)图像是一种用三个或更多字节描述像素的计算机图像存储方式。

  一般来说,前三个通道都会各用一个字节表示,如红绿蓝(RGB)或者蓝绿红(BGR)。如果存在第四个字节,则表示该图像采用了阿尔法通道。然而,实际系统往往用多于8位 (即1字节)表达一个通道,如一个48位的扫描仪等。这样的系统都统称为真彩色系统。

  每一色光以8位元表示,每个通道各有256(28)种阶调,三色光交互增减,RGB三色光能在一个像素上最高显示24位1677万色(256*256*256=16,777,216),这个数值就是电脑所能表示的最高色彩。普遍认为人眼对色彩的分辨能力大致是一千万色,因此由RGB形成的图像均称做真彩色。

  尽管一个阿尔法通道只是一个透明通道,从图像角度来说意义不大,然而这种32位的图像却在桌面时代大行其道。因为有了Alpha通道,在屏幕上描绘半透明图像变得简单了,(这往往是对绘图硬件加速设备的要求)在电脑桌面上能更为轻而易举地实现半透明窗口、菜单渐隐和阴影等效果。

  虽然阿尔法通道对于显示缓冲来说没有意义,但是在现实系统中仍然使用着 32 位真彩色,这是因为在 32 位的位图中对于像素的寻址更加容易。对 24 位像素寻址需要乘以 3,这样比通过移位就可以实现的乘以 4 的计算量更大。

  以上的解释都是站在微软的立场上阐述的,因为其产品视窗系列,即Windows操作系统,均以24位色为真彩色。实际上,真彩色也可以是一种不借助于色彩搜寻表(Color Look-Up Table,CLUT)的显示模式。因此真彩色也可以以各种色彩深度表示(8位,16位,24位……只要不涉及色彩搜寻表)。

真彩色与伪彩色、直接色的区别

 描述一幅图像需要使用图像的属性。图像的属性包含分辨率、像素深度、真/伪彩色、图像的表示法和种类等。本节介绍前面三个特性。
  搞清真彩色、伪彩色与直接色的含义,对于编写图像显示程序、理解图像文件的存储格式有直接的指导意义,也不会对出现诸如这样的现象感到困惑:本来是用真彩色表示的图像,但在VGA显示器上显示的图像颜色却不是原来图像的颜色。
   1. 真彩色(true color)
  真彩色是指在组成一幅彩色图像的每个像素值中,有R,G,B三个基色分量,每个基色分量直接决定显示设备的基色强度,这样产生的彩色称为真彩色。例如用RGB 5∶5∶5表示的彩色图像,R,G,B各用5位,用R,G,B分量大小的值直接确定三个基色的强度,这样得到的彩色是真实的原图彩色。
  如果用RGB 8:8:8方式表示一幅彩色图像,就是R,G,B都用8位来表示,每个基色分量占一个字节,共3个字节, 每个像素的颜色就是由这3个字节中的数值直接决定,RGB三色光能在一个像素上最高显示24位1677万色(256*256*256=16,777,216),这个数值就是电脑所能表示的最高色彩。普遍认为人眼对色彩的分辨能力大致是一千万色,因此由RGB形成的图像均称做真彩色。 用3个字节表示的真彩色图像所需要的存储空间很大,而人的眼睛是很难分辨出这么多种颜色的,因此在许多场合往往用RGB 5:5:5来表示,每个彩色分量占5个位,再加1位显示属性控制位共2个字节,生成的真颜色数目为23*32*32=32768bit = 32K。
  在许多场合,真彩色图通常是指RGB 8:8:8,即图像的颜色数等于224,也常称为全彩色(full color)图像。但在显示器上显示的颜色就不一定是真彩色,要得到真彩色图像需要有真彩色显示适配器,目前在PC上用的VGA适配器是很难得到真彩色图像的。
   2. 伪彩色(pseudo color)
  伪彩色图像的含义是,每个像素的颜色不是由每个基色分量的数值直接决定,而是把像素值当作彩色查找表(color look-up table,CLUT)的表项入口地址,去查找一个显示图像时使用的R,G,B强度值,用查找出的R,G,B强度值产生的彩色称为伪彩色。
  彩色查找表CLUT是一个事先做好的表,表项入口地址也称为索引号。例如16种颜色的查找表,0号索引对应黑色,... ,15号索引对应白色。彩色图像本身的像素数值和彩色查找表的索引号有一个变换关系,这个关系可以使用Windows 95/98定义的变换关系,也可以使用你自己定义的变换关系。使用查找得到的数值显示的彩色是真的,但不是图像本身真正的颜色,它没有完全反映原图的彩色。
   3. 直接色(direct color)
  每个像素值分成R,G,B分量,每个分量作为单独的索引值对它做变换。也就是通过相应的彩色变换表找出基色强度,用变换后得到的R,G,B强度值产生的彩色称为直接色。它的特点是对每个基色进行变换。
  用这种系统产生颜色与真彩色系统相比,相同之处是都采用R,G,B分量决定基色强度,不同之处是后者的基色强度直接用R,G,B决定,而前者的基色强度由R,G,B经变换后决定。因而这两种系统产生的颜色就有差别。试验结果表明,使用直接色在显示器上显示的彩色图像看起来真实、很自然。

  这种系统与伪彩色系统相比,相同之处是都采用查找表,不同之处是前者对R,G,B分量分别进行变换,后者是把整个像素当作查找表的索引值进行彩色变换。


转自:http://blog.chinaunix.net/uid-9185047-id-445102.html

你可能感兴趣的:(计算机图形学)