RGB是从颜色发光的原理来设计定的,通俗点说它的颜色混合方式就好像有红、绿、蓝三盏灯,当它们的光相互叠合的时候,色彩相混,而亮度却等于三者亮度之总和,越混合亮度越高,即加法混合。
RGB颜色称为加成色,因为您通过将R、G和B添加在一起(即所有光线反射回眼睛)可产生白色。加成色用于照明光、电视和计算机显示器。例如,显示器通过红色、绿色和蓝色荧光粉发射光线产生颜色。绝大多数可视光谱都可表示为红、绿、蓝(RGB)三色光在不同比例和强度上的混合。这些颜色若发生重叠,则产生黄、青和紫。
RGB
RGB格式
对一种颜色进行编码的方法统称为“
颜色空间
”或“
色域
”。用最简单的话说,世界上任何一种颜色的“颜色空间”都可定义成一个固定的数字或变量。RGB(红、绿、蓝)只是众多颜色空间的一种。采用这种编码方法,每种颜色都可用三个变量来表示-红色绿色以及蓝色的强度。记录及显示彩色图像时,RGB是最常见的一种方案。但是,它缺乏与早期黑白显示系统的良好兼容性。因此,许多电子电器厂商普遍采用的做法是,将RGB转换成
YUV
颜色空间,以维持兼容,再根据需要换回RGB格式,以便在
电脑显示器
上显示彩色图形。
网页格式
由于网页(WEB)是基于计算机浏览器开发的媒体,所以颜色以光学颜色RGB(红、绿、蓝)为主。网页颜色是以16进制代码表示,一般格式为#DEFABC(字母范围从A-F,数字从0-9);如黑色,在
网页代码
中便是:#000000(在css编写中可简写为#000)。当颜色代码为#AABB11时,可以简写为#AB1表示,如#135与#113355表示同样的颜色。
RGB1、RGB4、RGB8都是
调色板
类型的RGB格式,在描述这些媒体类型的格式细节时,通常会在BITMAPINFOHEADER数据结构后面跟着一个调色板(定义一系列颜色)。它们的图像数据并不是真正的颜色值,而是当前像素颜色值在调色板中的索引。以RGB1(2色
位图
)为例,比如它的调色板中定义的两种颜色值依次为0x000000(黑色)和0xFFFFFF(白色)…(每个像素用1位表示)表示对应各像素的颜色为:黑黑白白黑白黑白黑白白白…。
RGB555
RGB555是另一种16位的RGB格式,RGB分量都用5位表示(剩下的1位不用)。使用一个字读出一个像素后,这个字的各个位意义如下:
高字节 低字节
X R R R R R G G G G G B B B B B (X表示不用,可以忽略)
可以组合使用屏蔽字和移位操作来得到RGB各分量的值:
#define RGB555_MASK_RED 0x7C00
#define RGB555_MASK_GREEN 0x03E0
#define RGB555_MASK_BLUE 0x001F
R = (wPixel & RGB555_MASK_RED) >> 10; // 取值范围0-31
G = (wPixel & RGB555_MASK_GREEN) >> 5; // 取值范围0-31
B = wPixel & RGB555_MASK_BLUE; // 取值范围0-31
RGB565
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
可以组合使用屏蔽字和移位操作来得到RGB各分量的值:
#define RGB565_MASK_RED 0xF800
#define RGB565_MASK_GREEN 0x07E0
#define RGB565_MASK_BLUE 0x001F
R = (wPixel & RGB565_MASK_RED) >> 11; // 取值范围0-31
G = (wPixel & RGB565_MASK_GREEN) >> 5; // 取值范围0-63
B = wPixel & RGB565_MASK_BLUE; // 取值范围0-31
#define RGB(r,g,b) (unsigned int)( (r|0x08 << 11) | (g|0x08 << 6) | b|0x08 )
#define RGB(r,g,b) (unsigned int)( (r|0x08 << 10) | (g|0x08 << 5) | b|0x08 )
该代码可以解决24位与16位相互转换的问题
RGB24
RGB24使用24位来表示一个像素,RGB分量都用8位表示,取值范围为0-255。注意在内存中RGB各分量的排列顺序为:BGR BGR BGR…。通常可以使用RGBTRIPLE数据结构来操作一个像素,它的定义为:
typedef struct tagRGBTRIPLE {
BYTE rgbtBlue; // 蓝色分量
BYTE rgbtGreen; // 绿色分量
BYTE rgbtRed; // 红色分量
} RGBTRIPLE;
RGB32
RGB32使用32位来表示一个像素,RGB分量各用去8位,剩下的8位用作Alpha
通道
或者不用。(ARGB32就是带Alpha通道的RGB24。)注意在内存中RGB各分量的排列顺序为:BGRA BGRA BGRA…。通常可以使用RGBQUAD数据结构来操作一个像素,它的定义为:
typedef struct tagRGBQUAD {
BYTE rgbBlue; // 蓝色分量
BYTE rgbGreen; // 绿色分量
BYTE rgbRed; // 红色分量
BYTE rgbReserved; // 保留字节(用作Alpha通道或忽略)
} RGBQUAD。
RGB信号获取
技术特点
● 采集计算机VGA输出屏幕、各种非标准相机的输出采集设备、标准或非标的RGB
分量信号● 采集的信号种类按照接口可为复合非标准
模拟信号,绿路带同步的/行场分离的RGB分量信号
● 高分辨率高帧率:1280×1024/40帧;1024×768/60帧;800×600/120帧;
● 最高点频可达170M
● 支持硬件任意开窗,二级缩放,硬件翻转
● 有类似内存映射的功能,多个应用程序/进程可以共享其采集的图像数据;
● 硬件控制帧率流量,可在实际使用中和其它
采集卡配合,更有效提高PCI
带宽的利用
● 支持RGB32、RGB24、YUV422、RGB8等采集格式
● 全自动行
场频检测:具有全自动行场频自适应能力和信号自检测能力,信源端信号的变化不需要用户调节,完全适合无人值守应用
●编程完全使用微软提供DirectShow /VFW接口,也可提供基于VC、VB、Delphi等的二次开发包演示程序和源代码,
●可使用微软的AmCap,VidCap,Windows Media Encode,Window Movie Maker、第三方提供的LabView等应用软件
信号介绍
VGA
采集卡/RGB信号采集卡可采集VGA信号、标准和非标准RGB分量等信号源,适用于高精度、高分辨率的图像采集、高清VGA视频图像的存储、编码传输等要求。
开发工具
● 操作系统支持:Windows 2000、XP、Vista、7 linux unix等主流操作系统.
● SDK支持:VC、VB、Delphi,提供演示程序及演示程序源代码
● 驱动支持:DirectX、OpenCV、LabView、
RGB色彩空间
RGB色彩空间根据实际使用设备系统能力的不同,有各种不同的实现方法。截至2006年,最常用的是24-位实现方法,也就是红绿蓝每个
通道有8位或者256色级。基于这样的24-位RGB模型的色彩空间可以表现256×256×256≈1670万色。一些实现方法采用每原色16位,能在相同范围内实现更高更精确的色彩密度。这在宽域色彩空间中尤其重要,因为大部分通常使用的颜色排列的相对更紧密。
印刷技术的当中的RGB色彩空间主要是指加色法当中的三度色彩空间,通过使用不同强度的三原色,红、绿、蓝色的光线来组合成不同的色彩,就好像说,如果平时我们利用扫描仪从印刷品上扫描图像,原理就是扫描仪阅读了图像上面的红、绿、蓝三色的光亮度,然后把这些量度转换成数据,当显示器收到这些数据的时候就可以按照程序设定转换成制定的红、绿、蓝三原色,其实他们当中是有很多不同颜色的小色块的,由于这些色块的像素非常非常的小而且密密麻麻的,所以我们眼睛没法分辨出来。
#define RGB(r,g,b) ((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))<<8))|(((DWORD)(BYTE)(b))<<16)))
这是个带三个参数的宏,
首先将r,g,b强制转换成BYTE型,之后g左移8位,b左移16位,并把结果分别强制转换成DWORD型,最后将r,左移8位后的g,还有左移16位后的b三者做按位或,所得的结果强制转换成COLORREF类型。TheRGBmacro selects a red, green, blue (RGB) color based on the arguments supplied and the color capabilities of the output device.
COLORREF RGB( BYTE byRed, BYTE byGreen, BYTE byBlue );
The return value is the resultant RGB color as a
COLORREFvalue.
byRed
The intensity of the red color.
byGreen
The intensity of the green color.
byBlue
The intensity of the blue color.
Nicholas Boughen (2003). Lightwave 3d 7.5 Lighting. Wordware Publishing, Inc. ISBN 1-55622-354-4.
R. W. G. Hunt (2004). The Reproduction of Colour (6th ed.). Chichester UK: Wiley–IS&T Series in Imaging Science and Technology. ISBN 0-470-02425-9.