三原色光模式

三原色光模式（RGB color model，又稱RGB表色系統、RGB顏色模型、紅綠藍顏色模型，是一種加色模型，將紅（Red）、綠（Green）、藍（Blue）三原色的色光以不同的比例相加混色，以合成產生各種色彩光。

RGB顏色模型的主要目的是在電子系統中檢測，表示和顯示圖像，比如電視和電腦，利用大腦強制視覺生理模糊化（失焦），將紅綠藍三原色子像素合成為一色彩像素，產生感知色彩（其實此真彩色並非加色法所產生的合成色彩，原因為該三原色光從來沒有重疊在一起，衹是人類為了「想」看到色彩，大腦強制眼睛失焦而形成。情況其實就有點像看那些 autostereograms 的立體圖時，大腦與眼睛扭曲才能看到「想」看的立體影像的情況）。紅綠藍三色模型在傳統攝影中也有應用。在電子時代之前，基於人類對顏色的感知，RGB顏色模型已經有了堅實的理論支撐。

RGB是一種依賴於設備的顏色空間：不同設備對特定RGB值的檢測和重現都不一樣，因為顏色物質（螢光劑或者染料）和它們對紅、綠和藍的單獨響應水平隨著製造商的不同而不同，甚至是同樣的設備不同的時間也不同。

## 相加原色

<image>

光的三原色是紅色、綠色和藍色，三種光相加會成為白色光。這是由於人類有三種視錐細胞分別對紅、綠和藍光最敏感。

三原色光和繪畫中的「三原色」不同。繪畫時用三種顏色青色（Cyan）、洋紅色（Magenta）和黃色（Yellow）以不同的比例配合，會產生許多種顏色。如果三種原色中最深的色料相加，理論上會成為黑色，但實際上是深灰色，因此需要獨立的黑色顏料。三色顏料加上黑色（blacK）便是「CMYK色彩空間」。

## 選擇紅綠藍的生理原因

三原色的原理不是出於物理原因，而是由於生理原因造成的。人的眼睛內有幾種辨別顏色的錐形感光細胞，分別對黃綠色、綠色和藍紫色（或稱靛色）的光最敏感（波長分別為564、534和420納米），如果辨別黃綠色的細胞受到的刺激略大於辨別綠色的細胞，人的感覺是黃色；如果辨別黃綠色的細胞受到的刺激大大高於辨別綠色的細胞，人的感覺是紅色。雖然三種細胞並不是分別對紅色、綠色和藍色最敏感，但這三種光可以分別對三種錐形細胞產生刺激。

不同的生物眼中辨別顏色的細胞並不相同，例如鳥類眼中有四種分別對不同波長光線敏感的細胞，而一般哺乳動物只有兩種，所以對它們來說只有兩種原色光。

既然「三原色的原理不是出於物理原因，而是由於生理原因造成的」，那麼前段所說的「用三種原色的光以不同的比例加和到一起，形成各種顏色的光」顯然就不大合適。使用三原色並不足以重現所有的色彩，準確地說法應該是「將三原色光以不同的比例複合後，對人的眼睛可以形成與各種頻率的可見光等效的色覺。」只有那些在三原色的色度所定義的顏色三角內的顏色，才可以利用三原色的光以非負量相加混合得到。

例如，紅光與綠光按某種比例複合，對三種錐狀細胞刺激後產生的色覺可與眼睛對單純的黃光的色覺等效。但決不能認為紅光與綠光按某種比例複合後生成黃光，或黃光是由紅光和綠光複合而成的。

## RGB顏色模型理論與應用的歷史

### 攝影

早期的攝影都是以沖曬照片為主，所以是以減色法來達成。

到近代數碼攝影的流行，感光元件都以感受三原色的光來組成相片，到後來的YUV。

### 彩色電視

#### 彩色顯示螢幕（近距離觀看）

至今為止，所有的彩色顯示螢幕都是應用三原色光加色技術，以RGB 三原色作為子像素構成一像素，由多個像素構成整個畫面。早期的彩色顯示螢幕主要是以陰極射線管（Cathode ray tube，CRT) 為主，其後是液晶顯示器（英語：liquid-crystal display，LCD）都是。

#### 大型彩色顯示螢幕（遠距觀看）

大型彩色顯示螢幕主要也應用三原色光加色技術，以 RGB 三原色 的LED構成一像素，由多個像素構成整個畫面。

## RGB設備

### 三原色光模仿真彩色顯示

紅綠藍的三原色光顯示技術廣泛用於電視和電腦的顯示器，利用紅、綠、藍三原色作為子像素組成的真色彩像素，透過眼睛及大腦的模糊化,「人類看到」不存在於顯示器上的感知色彩。最常見的有陰極射線管顯示螢幕、LED顯示螢幕、液晶顯示螢幕和等離子顯示屏等。三種原色光在每一象素中以0-255 (28)強度組合成從全黑色到全白色之間各種不同的顏色光，目前在電腦硬體中採取每一象素用24bit（位元）表示的方法，所以三種原色光各分到8比特，每一種原色的強度依照8比特的最高值28分為256個值。用這種方法可以組合16777216種顏色。最新的顯示卡、顯示螢幕及軟體，已可支援到 230 , 即可以產生出 1073741824種顏色。

### RGBW 模仿真彩色

近年，有鑑於傳統RGB技術呈現純白色時不夠光亮及較為耗電，不少公司紛紛研發出沒有顏色過濾物料的子像素，形成純白色，並把有關技術稱為RGBW，如三星的PenTile和索尼的WhiteMagic。

### 光線遇上螢幕時

近距離使用手機螢幕，在室內無光線干擾下，將不完全是白色的照明燈光投射在手機螢幕上，螢幕先形成最明顯的藍光，將照明燈靠近螢幕，再次形成範圍較廣的淺綠加上邊緣小範圍紅光，把照明燈拉遠後，將這三種顏色混合一起變成白光，也能正確發覺RGB出現在使用的手機例子之一。

## 非線性

由於伽瑪校正，在電腦顯示設備上的顏色輸出的強度通常不是直接正比於在圖象文件中R, G和B值。就是說，即使值0.5非常接近於0到1.0（完全強度）的一半，電腦顯示器在顯示 (0.5, 0.5, 0.5)時候的光強度通常（在標準2.2-gamma CRT/LCD上）是在顯示 (1.0, 1.0, 1.0)時候的大約22%，而不是50%。

## 數值表示

一個顏色顯示的描述是由三個數值控制的，他分別為R、G、B。但三個數值位為最大時，顯示為白色，當三個數值最小時，顯示為黑色。

數值表示可以使用以下幾種不同的方式：

- 浮點：從0到1之間可用的數來表示。
- 百分比：從0%到100%。
- 整數：使用0到255之間的一字節（8比特）表示，通常表示為十進位和十六進位的數值。高端數字圖像設備通常會使用更大的整數以區分更精細的階級來表示，比如0~1023（10bit）、0~65535（16bit），或更大。

例如紅色在不同方式下的表示：

方式｜RGB 表示

浮點｜(1.0, 0.0, 0.0)

百分比｜(100%, 0%, 0%)

八位數字｜(255, 0, 0) 或 #FF0000 (十六進位)

十六位數字｜(65535, 0, 0)

RGB與YUV轉換公式 (RGB取值範圍均為0~255)

- Y=0.299R＋0.587G＋0.114B ⁄ R=Y＋1.14V
- U=－0.147R－0.289G＋0.436B ⁄ G=Y－0.39U－0.58V
- V=0.615R－0.515G－0.100B ⁄ B=Y＋2.03U

## 幾何表示

<image>

顏色通常都是用三種成分來定義的，不僅RGB顏色模型是這樣，其它比如CIELAB和YUV也是如此。於是便採用三維空間來進行描述，把三種成分的數值當做歐幾里得空間中普通笛卡爾坐標系的坐標值。在RGB模型中使用0到1之間的非負數作為立方體的坐標值，將原點（0,0,0）作為黑色，強度值沿坐標軸方向遞增到達位於對角線（1,1,1）處的白色。

一個RGB組合（r,g,b）表示代表一個給定顏色的點在立方體內部、表面或者邊上的三維坐標。這種表示方法使得在計算兩個顏色相近程度時只需簡單計算它們之間的距離：距離越短顏色越接近。

- 0100ff

## 電腦顯示模式

### 24比特模式

每像素24位（bits per pixel，bpp）編碼的RGB值：使用三個8位無符號整數（0到255）表示紅色、綠色和藍色的強度。這是當前主流的標準表示方法，用於真彩色和JPEG或者TIFF等圖像文件格式里的通用顏色交換。它可以產生一千六百萬種顏色組合，對人類的眼睛來說，其中有許多顏色已經是無法確切的分辨。

下圖展示了24 bpp的RGB立方體的三個「完全飽和」面，它們被展開到平面上：

- (0, 0, 0)是黑色、(255, 255, 255)是白色、(255, 0, 0)是紅色、(0, 255, 0)是綠色、(0, 0, 255)是藍色、(255, 255, 0)是黃色、(0, 255, 255)是青色或水色、(255, 0, 255)是洋紅色｜黃色（255,255,0）｜綠色(0,255,0)｜青色或水色(0,255,255)

紅色(255,0,0)｜

<image>

｜藍色(0,0,255)

紅色(255,0,0)｜洋紅色(255,0,255)

上述定義使用名為「全值域」 RGB的約定。顏色值也經常被認為是取值於0到255之間，這可以被映射到其他數字編碼。

- RGB 值使用0、255，三個「完全飽和」面離散化，可顯示8種顏色
- FFFF00｜#00FF00｜#00FFFF
- FF0000｜#000000｜#0000FF
- FFFFFF｜#FF0000｜#FF00FF
- RGB 值使用0、128、255，三個「完全飽和」面離散化，可顯示20種顏色
- FFFF00｜#80FF00｜#00FF00｜#00FF80｜#00FFFF
- FF8000｜#808000｜#008000｜#008080｜#0080FF
- FF0000｜#800000｜#000000｜#000080｜#0000FF
- FFFFFF｜#FFFFFF｜#800000｜#800080｜#8000FF
- FFFFFF｜#FFFFFF｜#FF0000｜#FF0080｜#FF00FF
- RGB 值使用0、64、128、192、255，三個「完全飽和」面離散化，可顯示62種顏色
- FFFF00｜#C0FF00｜#80FF00｜#40FF00｜#00FF00｜#00FF40｜#00FF80｜#00FFC0｜#00FFFF
- FFC000｜#C0C000｜#80C000｜#40C000｜#00C000｜#00C040｜#00C080｜#00C0C0｜#00C0FF
- FF8000｜#C08000｜#808000｜#408000｜#008000｜#008040｜#008080｜#0080C0｜#0080FF
- FF4000｜#C04000｜#804000｜#404000｜#004000｜#004040｜#004080｜#0040C0｜#0040FF
- FF0000｜#C00000｜#800000｜#400000｜#000000｜#000040｜#000080｜#0000C0｜#0000FF
- FFFFFF｜#FFFFFF｜#FFFFFF｜#FFFFFF｜#400000｜#400040｜#400080｜#4000C0｜#4000FF
- FFFFFF｜#FFFFFF｜#FFFFFF｜#FFFFFF｜#800000｜#800040｜#800080｜#8000C0｜#8000FF
- FFFFFF｜#FFFFFF｜#FFFFFF｜#FFFFFF｜#C00000｜#C00040｜#C00080｜#C000C0｜#C000FF
- FFFFFF｜#FFFFFF｜#FFFFFF｜#FFFFFF｜#FF0000｜#FF0040｜#FF0080｜#FF00C0｜#FF00FF
- RGB 值使用0、51、104、153、204、255，三個「完全飽和」面離散化，可顯示92種顏色
- FFFF00｜#CCFF00｜#99FF00｜#66FF00｜#33FF00｜#00FF00｜#00FF33｜#00FF66｜#00FF99｜#00FFCC｜#00FFFF
- FFCC00｜#CCCC00｜#99CC00｜#66CC00｜#33CC00｜#00CC00｜#00CC33｜#00CC66｜#00CC99｜#00CCCC｜#00CCFF
- FF9900｜#CC9900｜#999900｜#669900｜#339900｜#009900｜#009933｜#009966｜#009999｜#0099CC｜#0099FF
- FF6600｜#CC6600｜#996600｜#666600｜#336600｜#006600｜#006633｜#006666｜#006699｜#0066CC｜#0066FF
- FF3300｜#CC3300｜#993300｜#663300｜#333300｜#003300｜#003333｜#003366｜#003399｜#0033CC｜#0033FF
- FF0000｜#CC0000｜#990000｜#660000｜#330000｜#000000｜#000033｜#000066｜#000099｜#0000CC｜#0000FF
- FFFFFF｜#FFFFFF｜#FFFFFF｜#FFFFFF｜#FFFFFF｜#330000｜#330033｜#330066｜#330099｜#3300CC｜#3300FF
- FFFFFF｜#FFFFFF｜#FFFFFF｜#FFFFFF｜#FFFFFF｜#660000｜#660033｜#660066｜#660099｜#6600CC｜#6600FF
- FFFFFF｜#FFFFFF｜#FFFFFF｜#FFFFFF｜#FFFFFF｜#990000｜#990033｜#990066｜#990099｜#9900CC｜#9900FF
- FFFFFF｜#FFFFFF｜#FFFFFF｜#FFFFFF｜#FFFFFF｜#CC0000｜#CC0033｜#CC0066｜#CC0099｜#CC00CC｜#CC00FF
- FFFFFF｜#FFFFFF｜#FFFFFF｜#FFFFFF｜#FFFFFF｜#FF0000｜#FF0033｜#FF0066｜#FF0099｜#FF00CC｜#FF00FF

使用每原色8-比特的全值域RGB可以有256級別的白-灰-黑深淺變化，255個級別的紅色、綠色和藍色（和它們的等量混合）的深淺變化，但是其他色相的深淺變化要少一些。由於gamma校正，256級別不表示同等間隔的強度。

典型使用上，數字視頻的RGB不是全值域的。影片RGB是有比例和偏移量的約定，即 (16, 16, 16)是黑色，(235, 235, 235)是白色。例如，這種比例和偏移量用在了CCIR 601的數字RGB定義中。

### 16色

在這種模式中有16種基本顏色，它們分別是：

### 16比特模式

16比特模式分配給每種原色各為5比特，其中綠色為6比特，因為人眼對綠色分辨的色調更敏感。但某些情況下每種原色各佔5比特，餘下的1比特不使用。

### 32比特模式

實際就是24比特模式，餘下的8比特不分配到像素中，這種模式是為了提高數據輸送的速度（32比特為一個DWORD，DWORD全稱為Double Word，一般而言一個Word為16比特或2個字節，處理器可直接對其運算而不需額外的轉換）。同樣在一些特殊情況下，如DirectX、OpenGL等環境，餘下的8比特用來表示象素的透明度（Alpha）。

## 網頁安全顏色

網頁安全顏色應用的也是三原色光24比特模式，但網景色譜（Netscape Color Cube）將其確定為216種，用6種數碼#00, #33, #66, #99, #CC, #FF(RGB 值分別是 0、51、102、153、204 和 255) 組合成216種排列方法表示顏色。一般使用者就不會被1670萬種顏色所迷惑。這種表示顏色的方式被網際網路在 HTML 3.2採納為標準方法。此色譜又被稱為網站設計顏色。

- 000000｜#330000｜#660000｜#990000｜#CC0000｜#FF0000
- 000033｜#330033｜#660033｜#990033｜#CC0033｜#FF0033
- 000066｜#330066｜#660066｜#990066｜#CC0066｜#FF0066
- 000099｜#330099｜#660099｜#990099｜#CC0099｜#FF0099
- 0000CC｜#3300CC｜#6600CC｜#9900CC｜#CC00CC｜#FF00CC
- 0000FF｜#3300FF｜#6600FF｜#9900FF｜#CC00FF｜#FF00FF
- 003300｜#333300｜#663300｜#993300｜#CC3300｜#FF3300
- 003333｜#333333｜#663333｜#993333｜#CC3333｜#FF3333
- 003366｜#333366｜#663366｜#993366｜#CC3366｜#FF3366
- 003399｜#333399｜#663399｜#993399｜#CC3399｜#FF3399
- 0033CC｜#3333CC｜#6633CC｜#9933CC｜#CC33CC｜#FF33CC
- 0033FF｜#3333FF｜#6633FF｜#9933FF｜#CC33FF｜#FF33FF
- 006600｜#336600｜#666600｜#996600｜#CC6600｜#FF6600
- 006633｜#336633｜#666633｜#996633｜#CC6633｜#FF6633
- 006666｜#336666｜#666666｜#996666｜#CC6666｜#FF6666
- 006699｜#336699｜#666699｜#996699｜#CC6699｜#FF6699
- 0066CC｜#3366CC｜#6666CC｜#9966CC｜#CC66CC｜#FF66CC
- 0066FF｜#3366FF｜#6666FF｜#9966FF｜#CC66FF｜#FF66FF
- 009900｜#339900｜#669900｜#999900｜#CC9900｜#FF9900
- 009933｜#339933｜#669933｜#999933｜#CC9933｜#FF9933
- 009966｜#339966｜#669966｜#999966｜#CC9966｜#FF9966
- 009999｜#339999｜#669999｜#999999｜#CC9999｜#FF9999
- 0099CC｜#3399CC｜#6699CC｜#9999CC｜#CC99CC｜#FF99CC
- 0099FF｜#3399FF｜#6699FF｜#9999FF｜#CC99FF｜#FF99FF
- 00CC00｜#33CC00｜#66CC00｜#99CC00｜#CCCC00｜#FFCC00
- 00CC33｜#33CC33｜#66CC33｜#99CC33｜#CCCC33｜#FFCC33
- 00CC66｜#33CC66｜#66CC66｜#99CC66｜#CCCC66｜#FFCC66
- 00CC99｜#33CC99｜#66CC99｜#99CC99｜#CCCC99｜#FFCC99
- 00CCCC｜#33CCCC｜#66CCCC｜#99CCCC｜#CCCCCC｜#FFCCCC
- 00CCFF｜#33CCFF｜#66CCFF｜#99CCFF｜#CCCCFF｜#FFCCFF
- 00FF00｜#33FF00｜#66FF00｜#99FF00｜#CCFF00｜#FFFF00
- 00FF33｜#33FF33｜#66FF33｜#99FF33｜#CCFF33｜#FFFF33
- 00FF66｜#33FF66｜#66FF66｜#99FF66｜#CCFF66｜#FFFF66
- 00FF99｜#33FF99｜#66FF99｜#99FF99｜#CCFF99｜#FFFF99
- 00FFCC｜#33FFCC｜#66FFCC｜#99FFCC｜#CCFFCC｜#FFFFCC
- 00FFFF｜#33FFFF｜#66FFFF｜#99FFFF｜#CCFFFF｜#FFFFFF