RGB模型

转载 2012年03月22日 10:41:04

转自:http://blog.csdn.net/jacklam200/article/details/5972724


RGB模型

 

    RGB模型是什么在这里就不介绍了,主要来谈谈RGB的格式.

    RGB是是从颜色发光的原理来设计定的,RGB模型分成了三个颜色通道红(R)、绿(G)、蓝(B),RGB色彩模式使用RGB模型为图像中每一个像素的RGB分量分配一个0~255范围内的强度值。RGB图像只使用三种颜色,就可以使它们按照不同的比例混合,在屏幕上重现16777216种颜色,每个颜色通道每种色各分为255阶亮度,在0时“灯”最弱——是关掉的,而在255时“灯”最亮。

在RGB格式包括RGB1,RGB2,RGB4,RGB8,RGB16,RGB24,RGB32,RGB36.在其中,RGB1、RGB2,RGB4,RGB8为调色板类型的RGB格式(如RGB111,RGB222,RGB233等).RGB16为高彩色Hi Color(如RGB444,RGB555,RGB565),RGB24为真彩色TRUE Color(如RGB888等),RGB32则带Aphal通道(RGBA)(注:RGBX等是指一个像素用多少位表示,比如RGB1它的调色板中定义的两种颜色值依次为0x000000(黑色)和0xFFFFFF(白色),那么图像数据001101010111…(每个像素用1位表示)表示对应各像素的颜色为:黑黑白白黑白黑白黑白白白…),另外类似RGB -565这些是指R与B对调。

 

先看下比较少位的RGB。单个像素位小于或等于8位的,因为不能完全表示所有的RGB颜色,所以在其中使用了调色板这个概念。那什么是调色板呢?

以WINDOWS系统为例,不是真彩色的位图都含有颜色索引表,在显示时可以采用调色板技术,将文件中自带的颜色显示出来。调色板是一组独立于存储各个像素颜色编号存储区的视频存储区。为了确定每个颜色编号所对应的真实颜色,显示硬件要参考调色板的颜色值。在调色板颜色系统中,每一幅图像都有自己的调色板,显示时必须将自己的调色板载入系统调色板中,实现调色板。下图为一个调色板例子(16色位)

 

0…15为调色板的index

      对于Hi ColorRGB1616位的RGB像素点数据还是直接的颜色索引值,并非RGB的颜色值,因为带有64K色,如果用调色板则会导致占据的空间过大, 所以不使用调色板,而是通过转换算法,如RGB444,RGB565,RGB555等。

      RGB565使用16位表示一个像素,这16位中的5位用于R,6位用于G,5位用于B。程序中通常使用一个字(WORD,一个字等于两个字节)来操作一个像素。当读出一个像素后,这个字的各个位意义如下:

  高字节 低字节

  R R R R R G G G G G G B B B B B

  RGB555是另一种16位的RGB格式,RGB分量都用5位表示(剩下的1位不用)。使用一个字读出一个像素后,这个字的各个位意义如下:

  高字节 低字节

X R R R R R G G G G G B B B B B (X表示不用,可以忽略)

颜色索引值到RGB值的转换,索引转换成RGB的基本原理,首先,对于RGB三值,由FixedPalette指定其每个位所占的位数,如为444则各4位. FixedPalette中指定能表示的RGB的范围分别为(R,G,B)1111/1111/1111,即16(R)/16(G)/16(B). 则当索引值Index为444时,则是RGB各值索引最大的时候,由此即可分析,R/G/B三值要表示的颜色范围是0x00-0xff,为了让有限的0-16的索引来表示0x00-0xff这些颜色值, 那么当然只能是跳隔着来表示,拿R来说,最好是取值为(17*0, 17*1,17*2,17*3,...17*15=248),如此的话,才能差不多在有限的16个索引值下将0xff种颜色最大程度的涵盖到(比较平均),但实际你可以自己控制索引到RGB颜色值的转换算法,但一定要合理,尽可能涵盖全面。 同理,对于FixedPalette为555时,则R取值最好为(8*0,8*1,8*2,

8*3,...8*31=243)...

同理,对于FixedPalette为565时,则B取值最好为(4*0,4*1,4*2,

4*3,...4*63=252)

下面为一个例子:RGB444

 

 

 

RGB24使用24位来表示一个像素,RGB分量都用8位表示,取值范围为0-255。注意在内存中RGB各分量的排列顺序为:BGR BGR BGR…。

 

RGB32使用32位来表示一个像素,RGB分量各用去8位,剩下的8位用作Alpha通道或者不用。(ARGB32就是带Alpha通道的RGB32。)注意在内存中RGB各分量的排列顺序为:BGRA BGRA BGRA…。

相关文章推荐

模块[camera]_RGB/HSV/YUV颜色空间模型总结

转自:http://blog.sina.com.cn/s/blog_679741950100ivz0.html 颜色通常用三个相对独立的属性来描述,三个独立变量综合作用,自然就构成一个空间坐标,这...

RGB与HLS模型转换(论文&C程序)

  • 2010年04月27日 22:17
  • 3.49MB
  • 下载

openGL绘制RGB颜色模型

  • 2011年04月02日 22:24
  • 1.14MB
  • 下载

RGB/HSV/YUV颜色空间模型总结

RGB颜色空间           计算机色彩显示器显示色彩的原理与彩色电视机一样,都是采用R、G、B相加混色的原理,通过发射出三种不同强度的电子束,使屏幕内侧覆盖的红、绿、蓝磷光材料发光而产生色彩...

RGB/HSV/YUV颜色空间模型总结

转自:http://blog.sina.com.cn/s/blog_679741950100ivz0.html 颜色通常用三个相对独立的属性来描述,三个独立变量综合作用,自然就构成一个空间坐...

HSI、HSV、RGB、CMYK、HSL、HSB、Ycc、XYZ、Lab、YUV颜色模型的区别

HSI、HSV、RGB、CMYK、HSL、HSB、Ycc、XYZ、Lab、YUV颜色模型的区别   HSV颜色空间  HSV(hue,saturation,value)颜色空间的模型对应于圆柱坐...

HSI、HSV、RGB、CMY、CMYK、HSL、HSB、Ycc、XYZ、Lab、YUV颜色模型

HSI、HSV、RGB、CMY、CMYK、HSL、HSB、Ycc、XYZ、Lab、YUV颜色模型 HSV颜色空间 HSV(hue,saturation,value)颜色空间的模型对应于圆...

【C#/算法】RGB、HSV、HSL颜色模型的互相转换

RGB、HSV、HSL颜色模型的含义本文就不赘述了,大家可以直接百度到。 在此提供一个封装好的可以对三种颜色模型进行互相转换的辅助类。 以上是使用该类写出的程序示例。 以下是颜色模型类的描...
  • ls9512
  • ls9512
  • 2015年11月23日 22:03
  • 2196
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:RGB模型
举报原因:
原因补充:

(最多只允许输入30个字)