RGB色彩模式是工業界的一種顏色標準,是透過對紅(R)、綠(G)、藍(B)三個顏色通道的變化以及它們相互之間的疊加來得到各式各樣的顏色的,RGB即是代表紅、綠、藍三個通道的顏色,這個標準幾乎包括了人類視力所能感知的所有顏色,是目前運用最廣的顏色系統之一。
中文名
RGB色彩模式
外文名
RGB color mode
強度值
0~255
影象顏色
紅、綠、藍三色
每畫素顏色
16777216(256 * 256 * 256)種
原理
顏色發光
調色盤RGB
RGB1、RGB4、RGB8
色彩模式
應用
目前的顯示器大都是採用了RGB顏色標準,在顯示器上,是透過電子槍打在螢幕的紅、綠、藍三色發光極上來產生色彩的,目前的電腦一般都能顯示32位顏色,有一千萬種以上的顏色。
電腦螢幕上的所有顏色,都由這紅色綠色藍色三種色光按照不同的比例混合而成的。一組紅色綠色藍色就是一個最小的顯示單位。螢幕上的任何一個顏色都可以由一組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顯示技術會給人們帶來更加豐富真實的色彩感受。[1]
RGB是從顏色發光的原理來設計定的,通俗點說它的顏色混合方式就好像有紅、綠、藍三盞燈,當它們的光相互疊合的時候,色彩相混,而亮度卻等於兩者亮度之總和,越混合亮度越高,即加法混合。
紅、綠、藍三盞燈的疊加情況,中心三色最亮的疊加區為白色,加法混合的特點:越疊加越明亮。
紅、綠、藍三個顏色通道每種色各分為256階亮度,在0時“燈”最弱——是關掉的,而在255時“燈”最亮。當三色灰度數值相同時,產生不同灰度值的灰色調,即三色灰度都為0時,是最暗的黑色調;三色灰度都為255時,是最亮的白色調。
RGB 顏色稱為加成色,因為您透過將 R、G 和 B 新增在一起(即所有光線反射回眼睛)可產生白色。加成色用於照明光、電視和計算機顯示器。例如,顯示器透過紅色、綠色和藍色熒光粉發射光線產生顏色。絕大多數可視光譜都可表示為紅、綠、藍 (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位不用)。使用一個字讀出一個畫素後,這個字的各個位意義如下:
RGB
高位元組 低位元組
X R R R R R G G G G G B B B B B (X表示不用,可以忽略)
可以組合使用遮蔽字和移位操作來得到RGB各分量的值:
#defineRGB555_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
#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。
訊號獲取
技術特點
● 採集計算機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色彩空間根據實際使用裝置系統能力的不同,有各種不同的實現方法。截至2006年,最常用的是24-位實現方法,也就是紅綠藍每個通道有8位或者256色級。基於這樣的24-位RGB 模型的色彩空間可以表現 256×256×256 ≈ 1670萬色。一些實現方法採用每原色16位,能在相同範圍內實現更高更精確的色彩密度。這在寬域色彩空間中尤其重要,因為大部分通常使用的顏色排列的相對更緊密。
印刷技術的當中的RGB色彩空間主要是指加色法當中的三度色彩空間,透過使用不同強度的三原色,紅、綠、藍色的光線來組合成不同的色彩,就好像說,如果平時我們利用掃描器從印刷品上掃描影象,原理就是掃描器閱讀了影象上面的紅、綠、藍三色的光亮度,然後把這些量度轉換成資料,當顯示器收到這些資料的時候就可以按照程式設定轉換成制定的紅、綠、藍三原色,其實他們當中是有很多不同顏色的小色塊的,由於這些色塊的畫素非常非常的小而且密密麻麻的,所以我們眼睛沒法分辨出來。
RGB色彩模式是工業界的一種顏色標準,是透過對紅(R)、綠(G)、藍(B)三個顏色通道的變化以及它們相互之間的疊加來得到各式各樣的顏色的,RGB即是代表紅、綠、藍三個通道的顏色,這個標準幾乎包括了人類視力所能感知的所有顏色,是目前運用最廣的顏色系統之一。
中文名
RGB色彩模式
外文名
RGB color mode
強度值
0~255
影象顏色
紅、綠、藍三色
每畫素顏色
16777216(256 * 256 * 256)種
原理
顏色發光
調色盤RGB
RGB1、RGB4、RGB8
色彩模式
應用
目前的顯示器大都是採用了RGB顏色標準,在顯示器上,是透過電子槍打在螢幕的紅、綠、藍三色發光極上來產生色彩的,目前的電腦一般都能顯示32位顏色,有一千萬種以上的顏色。
電腦螢幕上的所有顏色,都由這紅色綠色藍色三種色光按照不同的比例混合而成的。一組紅色綠色藍色就是一個最小的顯示單位。螢幕上的任何一個顏色都可以由一組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顯示技術會給人們帶來更加豐富真實的色彩感受。[1]
原理
RGB是從顏色發光的原理來設計定的,通俗點說它的顏色混合方式就好像有紅、綠、藍三盞燈,當它們的光相互疊合的時候,色彩相混,而亮度卻等於兩者亮度之總和,越混合亮度越高,即加法混合。
紅、綠、藍三盞燈的疊加情況,中心三色最亮的疊加區為白色,加法混合的特點:越疊加越明亮。
紅、綠、藍三個顏色通道每種色各分為256階亮度,在0時“燈”最弱——是關掉的,而在255時“燈”最亮。當三色灰度數值相同時,產生不同灰度值的灰色調,即三色灰度都為0時,是最暗的黑色調;三色灰度都為255時,是最亮的白色調。
RGB 顏色稱為加成色,因為您透過將 R、G 和 B 新增在一起(即所有光線反射回眼睛)可產生白色。加成色用於照明光、電視和計算機顯示器。例如,顯示器透過紅色、綠色和藍色熒光粉發射光線產生顏色。絕大多數可視光譜都可表示為紅、綠、藍 (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位不用)。使用一個字讀出一個畫素後,這個字的各個位意義如下:
RGB
高位元組 低位元組
X R R R R R G G G G G B B B B B (X表示不用,可以忽略)
可以組合使用遮蔽字和移位操作來得到RGB各分量的值:
#defineRGB555_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。
訊號獲取
技術特點
● 採集計算機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色彩空間根據實際使用裝置系統能力的不同,有各種不同的實現方法。截至2006年,最常用的是24-位實現方法,也就是紅綠藍每個通道有8位或者256色級。基於這樣的24-位RGB 模型的色彩空間可以表現 256×256×256 ≈ 1670萬色。一些實現方法採用每原色16位,能在相同範圍內實現更高更精確的色彩密度。這在寬域色彩空間中尤其重要,因為大部分通常使用的顏色排列的相對更緊密。
印刷技術的當中的RGB色彩空間主要是指加色法當中的三度色彩空間,透過使用不同強度的三原色,紅、綠、藍色的光線來組合成不同的色彩,就好像說,如果平時我們利用掃描器從印刷品上掃描影象,原理就是掃描器閱讀了影象上面的紅、綠、藍三色的光亮度,然後把這些量度轉換成資料,當顯示器收到這些資料的時候就可以按照程式設定轉換成制定的紅、綠、藍三原色,其實他們當中是有很多不同顏色的小色塊的,由於這些色塊的畫素非常非常的小而且密密麻麻的,所以我們眼睛沒法分辨出來。