數位影像色彩空間簡介
數位影像色彩空間簡介¶
傳統分析方式是將彩色影像轉為灰階影像,而灰階影像通常是亮度資訊或是彩色信號的平均資訊,這樣的原因很可能是早期電腦硬體計算能力不足,或是研究為求問題單純化所致,而分析基礎在於數學,數位影像處理技術發展已經很久了,可以追朔到1920年代初(1921年,第一個應用是在出版報業,巴特蘭電纜傳輸一幅圖片到大西洋對岸的時間從一個星期減少到3小時,引用來源:繆紹綱編譯之數位影像處理,如圖1.1-1)。
圖 1.1‑1
至今每年有數以千計的論文發表,解決許多問題。電腦視覺基本上就是模擬人類的智慧,人眼具有成像的能力,將光信號轉換成腦神經可以處理的資訊,再藉由人腦去分析判斷。照相機或攝影機就可以代替人類的眼睛,並將光學信號轉換成電氣信號,交由電腦演算處理。所以我們必須了解電腦『看』到甚麼,才能設計演算法來取出我們所需要的資料。感測器(Sensor)可將光源分為紅(Red)、綠(Green)、藍(Blue),而每一個通道可擁有0~255範圍資料表示,換句話說就是有256個等級可描述強度。這三個顏色就稱為三原色,而RGB就順理成章變成一種影像資料的格式,這種資料的格式也可稱為24bit影像。所以電腦看到一個人臉的時候,顯示的資料如下,如圖1.1-2:
圖 1.1‑2
RGB¶
英國科學家牛頓(1643~1727年)透過太陽光射入三菱鏡的實驗,發現三項事實。首先,白色的太陽光可以分解為七色光,分別是紅、橙、黃、綠、青、藍、紫。其次,七色光在射入三菱鏡可得白光。最後,單色光是無法再分割出其他顏色的光。光是電磁波的一種,人眼可見的光,稱做可見光。不可見光有真空紫外線、紫外線、紅外線、近紅外線、遠紅外線。人眼之所以可以見到色彩,其原因是反射率。物體之所以有色彩,是因為該物體只會反射該顏色的光。
國際照明委員會(CIE)於1931年採用R(red)、G(green)、B(blue)制定標準配色函數,在配色方程式中,假設[R]、[G]、[B]是單位向量,就可成為三維空間的向量運算。但由於三維表示並不方便,因為某個顏色[F]用[R]、[G]、[B]的混合量R、G、B為分量做成的RGB色彩空間的向量來表示,並不方便。因此經常用向量[F]和單位平面R+G+B=1的交點(r, g, b)來表示。
由此可知r+g+b=1,因此使用(r, g, b)的其中兩項就可以表示某色[F]。
藉由以上得知rg色度圖就可以表示某色[F],但有些顏色值在數學上是可行,實際上卻是不存在,例如當r=1.0, g=1.0,這就叫做虛色。而實際存在的顏色叫做實色。在RGB轉XYZ實需要虛色的觀念。當人工計算色度時,在RGB的配色函數會帶有負值,負值會有困擾。因此,CIE在1931年制定RGB色度系統。同年,為了使配色函數皆是正值,又制定了XYZ色度系統,或稱CIE 1931標準色度系統。與RGB可互相轉換,公式如下。
RGB轉XYZ¶
XYZ轉RGB¶
CMYK¶
RGB可稱為混色系統,因為這三種光線的混合幾乎可以表達所有的顏色。顏料的特性相反,顏料吸收光線,而不增強光線。所以使用顏料作畫或印刷時,RGB將不再適用,只要將三原色進行補色就可以很好的解決問題。紅色、綠色、藍色的補色剛好是青、洋紅、黃色。因為黃色顏料會吸收藍色光,青色顏料會吸收紅色光,因此最後只剩下綠色光的反射。這就是黃色顏料加青色顏料會變成綠色的道理。CMY(Cyan, Magenta, Yellow) 顏色空間常應用於印刷,印刷透過三原色油墨不同網點面機率來產生各種顏色。通常等量的CMY顏色可以組合成黑色,但是不夠純,因此增加黑色顏料。變成CMYK色。
從CMYK轉換到RGB
tCMYK = {C,M,Y,K}
轉換成三分色
tCMY = {C',M',Y'} = {C(1 - K) + K,M(1 - K) + K,Y(1 - K) + K}
然後再轉換成RGB
tRGB = {R,G,B} = {1 - C',1 - M',1 - Y'}
同理結果如下:
tRGB = {1 - (C(1 - K) + K),1 - (M(1 - K) + K),1 - (Y(1 - K) + K)} = {1 - C(1 - K) - K,1 - M(1 - K) - K,1 - Y(1 - K) - K}
RGB轉換到CMYK
tRGB = {R,G,B}
先轉換成三分色
tCMY = {C',M',Y'} = {1 - R,1 - G,1 - B}
if min{C',M',Y'} = 1
tCMYK = {0,0,0,1}
再轉換成四分色
K = min{C',M',Y'}
HSV¶
RGB和CMYK都是機器可見的顏色,HSV(Hue, Saturation, Value)色相、飽和度、純度更為準確的反應人類視覺系統對色彩的理解方式。HSV也稱為HSB(Hue, Saturation, Brightness)。對於圓柱座標系統的一個圓錐形子集,V表示色彩明亮的程度,H表示色彩的資訊,飽和度S為一比例值。
HSL¶
引用https://zh.wikipedia.org/wiki/HSL%E5%92%8CHSV%E8%89%B2%E5%BD%A9%E7%A9%BA%E9%97%B4 維基百科的圖片
HSL(Hue, Saturation, Lightness)色彩空間,也同樣是從人類的視覺系統開發出來的,它與HSV很相似。HIS用色調(Hue)、飽和度(Saturation)和強度(Intensity)來描述色彩。色調是描述純色的屬性。飽和度的作用在於給出一種純色被白光稀釋的程度描述。強度是顏色的亮度(Luminance)或者光亮度(Lightness)。取值範圍從0(黑)到100%最亮。HSV與HSL唯一不同的地方是B和L兩個分量存在的區別,HSL飽和度最高的光亮度L定義為0.5,HSV顏色飽和度最高的明度值為B是1.0。亮度L,增加L可以使顏色變亮,L=0時,為黑色,L=1時,為白色。灰階沿著L軸分布,純色色彩均位於L=0.5、S=1的平面上。
Lab¶
引用https://zh.wikipedia.org/wiki/Lab%E8%89%B2%E5%BD%A9%E7%A9%BA%E9%97%B4 維基百科
Lab色彩空間是由CIE制定的另外一種色彩模型,它是應用最廣泛的色彩模型之一,CIE於1976年開發這套色彩模型,Lab色彩模型用3組數值表示色彩,亮度數值L,其值0到100。紅色和綠色兩種原色之間的變化域a,a取正數時代表紅色,取負數時則代表綠色。其數值範圍為-120到+120。B表示黃色到藍色兩種原色之間的變化區域,b取正數時表示黃色,取負數時表示藍色。其數值從-120到+120。
YUV¶
引用https://zh.wikipedia.org/wiki/YUV維基百科
YUV色彩系統是為了要讓CRT彩色電視信號能夠繼續使用黑白電視傳播系統來傳送信號,而研發出來節省頻寬的方法。Y代表著亮度向量,U和V代表著色差向量,RGB轉換為YUV的公式如下:
Y=0.299R+0.587G+0.114B
U=0.493(B-Y)=0.439(-0.29R-0.587G+0.886B)
V=0.877(0.701R-0.587G-0.114B)
YUV與RGB關係如下:
RGB與YUV關係如下:
雖說是有理論公式,但實際上處理的都是浮點數,效率上非常的糟糕,因此為了將其正規化,可以將RGB和YUV都在0到255之間轉換。所以可以採用下列的程式:
R = Y + (1.4075 (V - 128))
G = Y - (0.3455 (U - 128) - (0.7169 (V - 128))
B = Y + (1.7790 (U - 128)
Y = R .299 + G .587 + B .114
U = R -.169 + G -.332 + B .500 + 128
V = R .500 + G -.419 + B * -.0813 + 128
YIQ¶
Y代表亮度,I、Q代表色差向量。而如同YUV一樣都是彩色電視的色彩系統,YIQ與RGB之間的關係如下:
RGB與YIQ之間的關係如下:
YCbCr¶
YCbCr色彩系統被JPEG所使用,因此要研究JPEG數位影像處理就必須了解甚麼是YCbCr色彩系統。這是由YUV色彩系統所開發出來的另外一種色彩系統,其中Y指的是亮度,而Cb和Cr是將U與Y做些調整而成。
YCbCr與RGB的關係如下:
RGB與YCbCr關係如下: