RGB

RGB

RGB_百度百科

1基本简介编辑

简介

RGB

色彩

模式使用

RGB模型

为图像中每一个

像素

的RGB分量分配一个0~255范围内的强度值。RGB

图像

只使用三种颜色,就可以使它们按照不同的比例混合,在

屏幕

上呈现16777216(256 * 256 * 256)种颜色。

应用

[1]  

电脑屏幕上的所有颜色,都由这红色绿色蓝色三种色光按照不同的比例混合而成的。一组红色绿色蓝色就是一个最小的显示单位。屏幕上的任何一个颜色都可以由一组RGB值来记录和表达。

因此这红色绿色蓝色又称为三原色光,用英文表示就是R(red)、G(green)、B(blue)。

在电脑中,RGB的所谓“多少”就是指亮度,并使用整数来表示。通常情况下,RGB各有256级亮度,用数字表示为从0、1、2...直到255。注意虽然数字最高是255,但0也是数值之一,因此共256级。如同2000年到2010年共是11年一样。

按照计算,256级的RGB色彩总共能组合出约1678万种色彩,即256×256×256=16777216。通常也被简称为1600万色或千万色。也称为24位色(2的24次方)。

led

领域利用三合一点阵全彩技术, 即在一个发光单元里由RGB三色晶片组成全彩

像素

。随着这一技术的不断成熟,

led

显示技术会给人们带来更加丰富真实的

色彩

感受。

原理

RGB是从

颜色

发光的原理来设计定的,通俗点说它的

颜色

混合方式就好像有红、绿、蓝三盏灯,当它们的光相互叠合的时候,

色彩

相混,而

亮度

却等于两者亮度之总和,越混合亮度越高,即加法混合。

有色光可被无色光冲淡并变亮。如蓝色光与白光相遇,结果是产生更加明亮的浅蓝色光。知道它的混合原理后,在

软件

中设定颜色就容易理解了。

红、绿、蓝三盏灯的叠加情况,中心三色最亮的叠加区为白色,加法混合的特点:越叠加越明亮。

红、绿、蓝三个

颜色通道

每种色各分为255阶

亮度

,在0时“灯”最弱——是关掉的,而在255时“灯”最亮。当三色数值相同时为无

色彩

灰度

色,而三色都为255时为最亮的白色,都为0时为黑色。

RGB 颜色称为加成色,因为您通过将 R、G 和 B 添加在一起(即所有光线反射回眼睛)可产生白色。加成色用于

照明

光、

电视

计算机 显示器

。例如,

显示器

通过红色、绿色和蓝色荧光粉发射光线产生颜色。绝大多数可视

光谱

都可表示为红、绿、蓝 (RGB) 三色光在不同比例和强度上的混合。这些颜色若发生重叠,则产生青、

洋红

和黄。

2RGB格式编辑

对一种颜色进行编码的方法统称为“

颜色空间

”或“

色域

”。用最简单的话说,世界上任何一种颜色的“

颜色空间

”都可定义成一个固定的数字或

变量

。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(RGB888)

RGB24使用24位来表示一个

像素

,RGB分量都用8位表示,取值范围为0-255。注意在内存中RGB各分量的排列顺序为:BGR BGR BGR…。通常可以使用RGBTRIPLE

数据结构

来操作一个

像素

,它的定义为:

typedef struct tagRGBTRIPLE {

BYTE rgbtBlue; // 蓝色分量

BYTE rgbtGreen; // 绿色分量

BYTE rgbtRed; // 红色分量

} RGBTRIPLE;

RGB32(RGB8888)

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。

3信号获取编辑

技术特点

● 采集

计算机

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、

4色彩空间编辑

RGB

色彩

空间根据实际使用设备系统能力的不同,有各种不同的实现方法。截至2006年,最常用的是24-位实现方法,也就是红绿蓝每个

通道

有8位或者256色级。基于这样的24-位RGB 模型的

色彩

空间可以表现 256×256×256 ≈ 1670万色。一些实现方法采用每原色16位,能在相同范围内实现更高更精确的

色彩

密度。这在宽域

色彩

空间中尤其重要,因为大部分通常使用的颜色排列的相对更紧密。

印刷技术的当中的RGB

色彩

空间主要是指加色法当中的三度色彩空间,通过使用不同强度的三原色,红、绿、蓝色的光线来组合成不同的色彩,就好像说,如果平时我们利用扫描仪从印刷品上扫描图像,原理就是扫描仪阅读了图像上面的红、绿、蓝三色的光

亮度

,然后把这些量度转换成数据,当

显示器

收到这些数据的时候就可以按照程序设定转换成制定的红、绿、蓝三原色,其实他们当中是有很多不同颜色的小色块的,由于这些色块的

像素

非常非常的小而且密密麻麻的,所以我们眼睛没法分辨出来。

5RGB宏编辑

#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类型。

[2]  

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 );

Return value

The return value is the resultant RGB color as a

COLORREF

value.

[3]  

Parameters

byRed

The intensity of the red color.

byGreen

The intensity of the green color.

byBlue

The intensity of the blue color.

6颜色函数编辑

RGB

函数

执行成功时返回由指定分量确定的颜色,用长整数表示。用于表示一个RGB(红绿蓝)颜色值.

语法

RGB (RedAs Integer ,GreenAs Integer ,BlueAs Integer )

部分

描述

red

必要参数;Integer类型。数值范围从 0 到 255,表示颜色的红色成份。

green

必要参数;Integer类型。数值范围从 0 到 255,表示颜色的绿色成份。

blue

必要参数;Integer类型。数值范围从 0 到 255,表示颜色的蓝色成份。

注意: 如果其中有一个参数的值超过 255 ,不会显示任何错误,但这个参数会被当做 255。

函数说明

可以接受颜色说明的应用程序的

方法

属性

期望这个说明是一个代表 RGB 颜色值的数值。一个 RGB 颜色值指定红、绿、蓝三原色的相对亮度,生成一个用于显示的特定颜色。

用法RGB()

函数

使用下述公式计算表示颜色的长整数:65536 *Blue + 256 * Green+Red其中,Blue代表蓝色分量,Green代表绿色分量,Red代表红色分量。各分量中,数值越小,

亮度

越低,数值越大,亮度越高。

7常见颜色编辑

颜色名称红色值 Red绿色值 Green蓝色值 Blue

黑色

0

0

0

蓝色

0

0

255

绿色

0

255

0

青色

0

255

255

红色

255

0

0

洋红色

255

0

255

黄色

255

255

0

白色

255

255

255

8颜色选择器编辑

颜色选择器是指利用程序实现R、G、B三色的分配,来实现颜色的选择,利用颜色选择器可以选择出所有的颜色,总共有256*256*256种,同时可以实时的预览颜色,这就使得颜色的选择多种多样,并且非常方便。

转载于:https://www.cnblogs.com/Dennis-mi/p/3866636.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值