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…。

RGB颜色模型和HSV颜色模型及其应用的汇总

在图像处理中,最常用的颜色空间是RGB模型,常用于颜色显示和图像处理,三维坐标的模型形式,非常容易被理解。而HSV模型,是针对用户观感的一种颜色模型,侧重于色彩表示,什么颜色、深浅如何、明暗如何。。。...
  • gdut2015go
  • gdut2015go
  • 2015年06月05日 09:06
  • 4341

图像处理--RGB与HSI颜色模型的转换方法介绍

最近学习一篇刘华波写的文章《RGB 与HSI 颜色模型的转换方法对比研究》,在这里记录下学习笔记 RGB颜色空间 经过详细的实验结果验证,人眼中的600~700万个锥状细胞可分...
  • yangleo1987
  • yangleo1987
  • 2016年11月15日 15:29
  • 6254

RGB模型转换到hsv原理及其opencv实现代码

RGB模型 2. HSV模型 3. 如何理解RGB与HSV的联系 4. HSV在图像处理中的应用 5. opencv中RGB-->HSV实现 在图像处理中,最...
  • AIYOUNGWZH
  • AIYOUNGWZH
  • 2016年08月27日 21:51
  • 483

图像处理中常用的彩色模型

颜色模型就是描述用一组数值来描述颜色的数学模型。在彩色图像处理中,选择合适的彩色模型是很重要的。从应用的角度来看,彩色模型可分为两类: 面向硬件设备的彩色模型 面向视觉感知的彩色模型...
  • u012507022
  • u012507022
  • 2016年10月16日 14:28
  • 3983

Matlab中的颜色模型

在图像处理与显示的过程中,为了能正确的使用颜色,提取相关颜色区域,需要建立颜色模型。当然,这种基于颜色的提取,或者说是二值化(如基于红色度的二值化),并不一定能得到理想的处理效果。常用的颜色模型有RG...
  • u010485442
  • u010485442
  • 2014年05月12日 21:34
  • 1670

RGB的三维模型与渐变色

转自:http://www.cnblogs.com/Free-Thinker/p/5569792.html 一、前言 以下与颜色相关的日志记录了俺学习颜色的有关容,限于编写时的水平...
  • hjwang1
  • hjwang1
  • 2017年01月11日 09:25
  • 1058

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

转自:http://blog.sina.com.cn/s/blog_679741950100ivz0.html 颜色通常用三个相对独立的属性来描述,三个独立变量综合作用,自然就构成一个空间坐标...
  • rzwangyu
  • rzwangyu
  • 2016年04月19日 10:40
  • 1163

OpenCV实现RGB颜色空间和HSI颜色空间的相互转换

关于HSI颜色空间参照维基百科:http://zh.wikipedia.org/wiki/HSI%E8%89%B2%E5%BD%A9%E5%B1%AC%E6%80%A7%E6%A8%A1%E5%BC%...
  • dyllove98
  • dyllove98
  • 2013年06月03日 23:04
  • 8917

颜色空间总结

颜色空间总结RGB、HSV、YUV什么是颜色Wiki是这样说的:颜色或色彩是通过眼、脑和我们的生活经验所产生的一种对光的视觉效应。嗯,简单点说,颜色就是人对光的一种感觉,由大脑产生的一种感觉。感觉是一...
  • LG1259156776
  • LG1259156776
  • 2015年09月09日 16:05
  • 9006

浅谈异步IO各模型优缺点

本文只讨论OverLapped I/O的三种异步模型及完成端口,像select、SWASelect不作讨论,讨论顺序从劣到优,方便于循序渐进地对比,更容易区分各模型之间的差别。 1. OverLa...
  • zsJum
  • zsJum
  • 2013年10月08日 15:27
  • 4481
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:RGB模型
举报原因:
原因补充:

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