作者:??固態(tài)二氧化碳?? (主頁)
鏈接:(原創(chuàng))計算機圖像處理入門基礎知識——色域,色度圖,色彩空間和色彩管理 - 固態(tài)二氧化碳的博客 - CSDN博客
來源:CSDN博客
發(fā)表時間:2020年06月03日 18:36:36
著作權歸作者所有。商業(yè)轉載請聯(lián)系作者獲得授權,非商業(yè)轉載請注明出處。
閱讀指引:
??閱讀完這篇文章后,你可以學到:
??①色度圖的概念
??②色域和色彩空間的概念
??③為什么sRGB里的#FF00FF不是'品紅'而是紫色,而Adobe RGB的才是真正的品紅(相關文章)
??④色彩管理的基本概念以及為什么要進行色彩管理
??色域,色彩空間和色彩管理是計算機圖像處理和攝影中的重要的基本概念,這篇文章我們就來聊聊色域,色彩空間和色彩管理的相關知識。
??玩過數(shù)碼相機的人應該知道,數(shù)碼相機照片里面有個'色彩空間'的概念。所謂色彩空間,就是圖片或顯示器所能表現(xiàn)色彩的集合。人眼可以分辨出上億種顏色,這些顏色構成了一個空間,也就是最大的色彩空間。顯示器利用三原色原理,盡可能多的還原出人眼所能看到的色彩,但不一定能做到還原所有色彩,并且不同的顯示器,還原色彩的能力也不盡相同,有的色彩范圍更大,有的則較小,這樣就產(chǎn)生了'色域'的概念來描述顯示器或照片對色彩范圍覆蓋的能力。
??我們在購買顯示器的時候,會有許多參數(shù),其中就包括色域一項。廠家一般會用'xx% sRGB'或'xx% NTSC'來定量描述色域大小,這里的'xx%'就是指顯示器色彩覆蓋范圍和某一標準色域(如sRGB)的比值。但是這些數(shù)字不能反映色彩具體的覆蓋范圍,為了更直觀地展示色域,我們需要介紹色度圖的概念。
??色度圖,是CIE(國際照明委員會)為了直觀展示色彩的關系,制定的一種描述色域范圍的圖像。其中,以1931年制定的CIE 1931最為廣泛使用。
??圖中上半部分黑色曲線上的點為單色光,即單一頻率的光(電磁波)的顏色,也就是彩虹的顏色。下半部分從藍色到紅色之間的連線將彩虹兩端連接到一起,構成一個封閉區(qū)域。整個圖像因形狀類似馬蹄,又被稱為'馬蹄圖'。該圖像有如下幾個特點和性質:
??①圖像所圍成的區(qū)域覆蓋了人眼所能分辨的所有顏色
??②圖像上每一個點唯一對應一個顏色,自然界中的每一個顏色都唯一對應圖像上一個點
??③圖像上半部分黑色曲線上的點上的顏色可以由單頻光(如激光、LED光等)得到.其他位置的點必須由兩種或兩種以上單頻光加和得到
??④圖像中間區(qū)域的曲線為黑體輻射顏色和溫度關系的曲線(任何溫度的物體都有輻射一定頻率范圍電磁波的能力,當溫度足夠高時,輻射出電磁波的頻率分布也會足夠高,變成可見光,從而有了顏色),這些電磁波均為復合光,這條曲線被稱為'普朗克軌跡'。顏色變化大致為紅->橙->黃->白->藍(不經(jīng)過綠色區(qū)域)。曲線上的溫度又稱'色溫',單位為開爾文(K),它與攝氏度(℃)之間的關系的是T(K)=t(℃)+273.15
??⑤圖像中央位置白色的部分稱為白點,該點在顏色校正中十分重要,因為白點決定了三原色的配比和白平衡。白點因顯示設備的不同而不同,但不會偏離圖像的中間位置。白點所在位置數(shù)值稱為該光源的色溫。一般的顯示器色溫值為6500K,因為自然光,或者白紙的色溫一般都在6500K左右。如果色溫值偏離6500K,則白色會有色彩傾向。色溫低于6500K時,白色會偏黃,稱為'暖白',高于6500K時,白色則會偏藍,稱為'冷白'。總而言之,色溫越低越暖,色溫越高越冷。比如現(xiàn)在手機常見的'護眼模式'的原理,就是將白點往黃色方向偏移,降低屏幕的色溫,使得屏幕中對眼睛傷害更大的高頻藍光減少,變?yōu)楦鼮槿岷偷拿S色,達到保護眼睛的效果(但不是每個人都喜歡這種黃黃的暖屏的)。
??⑥在圖像中任意選三個點,就得到了三原色,三個點圍成一個三角形,就形成了一個色域。這三個點可以任意選取,但是為了追求更大的色域,通常將這三個點位置選在右下角,上方和左下角,而這三個區(qū)域對應的顏色為紅色,綠色和藍色,所以三原色一般為RGB。但是RGB的位置也不是唯一的一個點,而是一個范圍,所以RGB也有不同的偏向。如藍色(B)的選取位置,有的靠上,而有的靠下,如果B的位置靠上,那么藍原色就是正藍色,如果B的位置靠下,那么藍原色就是偏紫的藍色
??⑦CIE 1931色度圖有一個很重要的性質,就是顏色合成的線性性質。兩個顏色加和后的顏色,必然位于這兩個顏色所在的兩點連線上,所以三原色能夠合成的顏色范圍,必然位于三原色三個點圍成的三角形內部及三邊上
??⑧若兩個顏色對應的點與白點共線,且位于白點一側,則這兩個顏色的色相相同,只有純度的區(qū)別。顏色離白點越近,飽和度(純度)越低,離白點越遠,飽和度(純度)越高(即越鮮艷)。
??⑨若兩個顏色按照一定比例合成后能得到白色,那么這兩個顏色稱為'互補色',更準確地說,是'光學互補色',以便和美術互補色區(qū)分開來。有關光學互補色和美術互補色的內容,詳見我寫的這篇文章:(原創(chuàng))用紅黃藍RYB色相環(huán)(伊登色相環(huán))代替RGB色相環(huán)。根據(jù)性質⑦,互補色對應的兩個點一定與白點共線,且這兩點分居白點兩側。
??⑩由于某一間色(三原色中任意兩個顏色按最大值混合得到的顏色)與沒有參與該間色的那一個原色合成后,三個顏色的值均會達到最大值,即形成了白色。因此這個間色和剩下的那個原色為光學互補色(根據(jù)性質⑨)。因此三間色,實際上也是三原色的光學互補色,簡稱三補色。根據(jù)性質⑨,三間色(三補色)一定位于三原色與白點連線的延長線與三角形某一邊的交點上。如果我們知道了三原色和白點的坐標,就可以利用解析幾何知識推算出三間色的坐標。
???三原色和白點選取的不同,構成了各種不同的色彩空間和色域,它們有的有自己的名字,其中比較有代表性的是sRGB和Adobe RGB,而目前計算機、手機、平板等設備上最常用的色域就是sRGB色域,它是HP與微軟于1996年開發(fā)的面向顯示器、打印機、Web等的一種色彩空間。Adobe RGB則主要用于專業(yè)圖像處理,它是Adobe于1998年開發(fā)的一種色彩空間,其色域比sRGB大。兩者的主要區(qū)別在于綠原色的選取位置不同,Adobe RGB的綠原色比sRGB的更偏向左上角。
??介紹完了色度圖,我們來說說色域和色彩空間的問題。色彩空間和色彩模式是兩個完全不同的概念,很多初學者在初學時容易混淆兩者。下面我們來介紹一下兩者的區(qū)別。
??色彩模式,實際上就是色彩的表現(xiàn)方式,比如RGB、CMYK、Lab、HSB等。RGB是光的加和,CMYK是顏料對光的吸收,Lab是人眼對顏色的感知維度,L為明度值,a為綠->紅互補色對偏向值,b為藍->黃互補色對偏向值,HSB則是心理學對顏色的感知,從色相(H),飽和度(S),明度(B)三個維度來描述一個顏色。
??色彩空間,就是上面說的sRGB,Adobe RGB等,就是一個設備所能表現(xiàn)的所有顏色的集合。一個設備所能合成出的所有顏色必然位于該色彩空間內,用數(shù)學語言表示,就是c∈S,其中c為任一顏色,S為某一色彩空間。
??而所謂色域,就是色彩空間這個集合的范圍,不同的色彩空間有著不同的色域。比如剛才說的Adobe RGB的色域比sRGB的大,而sRGB的色域又全部包含在Adobe RGB中,那么用數(shù)學語言描述,sRGB這個色彩空間就是Adobe RGB的(真)子集,即S(sRGB)?(?)S(Adobe RGB)。
??所以說簡單點,色彩空間就相當于數(shù)學上的集合,只不過這個集合是定義在顏色域上的一種集合。有意義的最大的色彩空間就是CIE 1931色彩空間,即CIE 1931色度圖圍成的最大區(qū)域,因為它包含了人眼能看到的所有顏色,該區(qū)域外的顏色均為無意義的顏色。所以CIE 1931色彩空間,可以理解為色彩域的全集,數(shù)學上用U表示,所有色彩空間均為它的子集,即S?U。目前的所有基于三原色的色彩空間(三角形)均無法達到覆蓋人眼可以看得到所有顏色(曲邊形)的效果。
??說完了色彩空間,我們來回答開頭提到的一個問題。為什么sRGB里的#FF00FF不是'品紅'而是紫色,而Adobe RGB的才是真正的品紅。這個問題在這之前寫的一篇文章里提到過:。因為我們大多數(shù)人的顯示器用的都是sRGB色彩空間,所以#FF00FF顯示的都是這種效果(有些人的顯示器可能調了色溫,或者開了護眼模式,也可能有色差,導致與預期效果不一致,所以下面所說的結論都是在顯示器顯示效果滿足標準sRGB效果的基礎上得到的),而如果使用的是Adobe RGB顯示器,則不會出現(xiàn)這種問題。下面我們用圖來解釋為什么會造成這種問題。
??這是sRGB和Adobe RGB三原色和三間色坐標位置的圖像,從圖中我們可以看出,sRGB和Adobe RGB的三原色除了綠色外坐標都相同,而Adobe RGB的綠原色在sRGB綠原色的左上角,更偏向于藍色。兩者的白點坐標完全相同,均為D65(6500K)白點。前面我說過,間色位置的求法,是將某個三原色與白點相連并延長,與三角形某一邊的交于一點(圖中虛線),這樣便可以得到三個點,這三個點的坐標就是三間色的坐標(性質⑩)。由于sRGB與Adobe RGB的紅原色和藍原色坐標相同,所以紅色和藍色對應的間色(補色),即青色和黃色,與白點是共線的,即sRGB與Adobe RGB的青色和黃色色相分別相同,只是純度的區(qū)別。Adobe RGB的青色和黃色比sRGB的離白點都更遠,因此它們的飽和度也更高(性質⑧)。此外,Adobe RGB的綠原色離白點更遠,因此也更加鮮艷。所以Adobe RGB所表現(xiàn)的顏色,尤其是從黃色到青色之間的區(qū)域,是比sRGB要更加鮮艷的,所以用Adobe RGB拍攝照片,可以還原出更加鮮艷,更加真實的色彩,而使用通常所用的sRGB照相則會丟失這些細節(jié)信息。
??而由于sRGB與Adobe RGB的綠原色坐標不同且與白點不共線,所以導致其對應的間色坐標不同且與白點不共線,色相也不同。Adobe RGB綠色對應的間色更偏右上角,即更偏向于紅色。而sRGB對應的間色偏向于藍色,在觀感上并不像CMYK里的品紅,而是更像紫色。Adobe RGB中綠色的間色由于比紫色更偏紅,所以色相上是偏紫的紅色,即品紅色,更接近于CMYK里的品紅顏料。
??而如果在不加說明的情況下,Web里的一個顏色代碼,默認指的是sRGB色彩空間(因為Web上絕大多數(shù)圖像都是用sRGB進行傳輸?shù)?,因此#FF00FF這個代碼(sRGB)指的就應該是紫色而不是品紅,除非強調色彩空間是Adobe RGB。CMYK中的品紅顏料,吸收的是類似于Adobe RGB的綠原色,而不是sRGB里的,因此呈現(xiàn)出玫紅色,這一點仍然是遵循補色原理的。
??總之,根據(jù)色彩空間的不同,不僅原色的位置會不同,間色也會有所差異,在綠原色的選取不同時,其對應間色可以從紫色到品紅范圍之間變化,要根據(jù)綠原色的坐標來確定其對應間色到底是紫色還是品紅。
??下面兩幅圖是sRGB與Adobe RGB的三原色和三間色的對比圖(從左到右,從上到下的顏色順序是紅色、黃色、綠色、青色、藍色、紫色(品紅色))。為了避免溢色,我將三原色和三間色的明度調整為90%。第二幅Adobe RGB圖是將Adobe RGB顏色經(jīng)過色彩空間轉換后得到的sRGB色值做成的圖,其色彩空間已經(jīng)轉換為了sRGB,因此不用擔心色彩管理的問題。有關色彩空間轉換和色彩管理的內容,將會在下一節(jié)介紹。由于sRGB無法準確顯示Adobe RGB的色彩,所以第二幅圖顯示的色彩只是模擬出的色彩,并非真正的Adobe RGB顯示器顯示出的效果。
??(看下面的圖時候最好關閉護眼模式或其他和顯示色溫相關的屬性)
??通過上圖,可以看出,Adobe RGB的黃色、綠色、青色比sRGB更鮮艷,Adobe RGB的右下角色塊就是品紅色(紫紅色),sRGB的右下角色塊則是紫色,而不是品紅色,與Adobe RGB的有顯著區(qū)別。
??附表:sRGB和Adobe RGB三原色和三間色坐標表
顏色 | 色坐標(sRGB) | 色坐標(Adobe RGB) |
---|---|---|
白色 | (0.3127,0.3290) | (0.3127,0.3290) |
紅色 | (0.6400,0.3300) | (0.6400,0.3300) |
黃色 | (0.4193,0.5053) | (0.4271,0.5181) |
綠色 | (0.3000,0.6000) | (0.2100,0.7100) |
青色 | (0.2246,0.3287) | (0.1748,0.3286) |
藍色 | (0.1500,0.0600) | (0.1500,0.0600) |
紫色(品紅) | (0.3209,0.1542) | (0.3548,0.1728) |
??由于不同種類的色彩空間的存在,色彩空間之間的相互交流也就成了一個很重要的問題。比如我們用某個單反相機拍攝了一張照片,使用的是Adobe RGB色彩空間,但是電腦顯示器卻是sRGB空間的,那么如何顯示出這張Adobe RGB空間的照片就成了一個很重要的問題。最簡單粗暴的方式,就是將原圖片中所有顏色原封不動地輸入給顯示器,給顯示器展示。但是這樣就會出現(xiàn)一個問題,由于原圖的某個顏色是用Adobe RGB記錄的,而給sRGB顯示器輸入了這個顏色值,顯示器展示的會是sRGB的這種色值對應的顏色,而這兩種顏色實際上是不同的,導致實際展示出來的顏色并非原圖所想展示出來的顏色。
??比如有一張Adobe RGB照片里,某一像素的顏色為綠色(0,170,0),這個值輸入進sRGB顯示器后,輸出的顏色雖然還是綠色,但是由于sRGB同等數(shù)值的綠色不如Adobe RGB的鮮艷,導致顯示出來的圖片效果也不如原來拍攝的鮮艷。但是如果我們進行色彩管理的工作后,程序就會將Adobe RGB的某種顏色盡可能地轉換為sRGB中對應的最接近的顏色,那么圖片顯示的色差就會大大減小。剛才的Adobe RGB里的(0,170,0),可能在sRGB中,就需要(0,204,0)才能達到等價的效果,而這兩個色值之間的轉化工作,正是需要色彩管理來做的事情。
??色彩管理,就是對不同色彩空間顏色之間的轉化工作。一個程序在處理圖片時,需要指定一個色彩空間,這個色彩空間一般默認為sRGB,但是如果安裝了某些廣色域的顯示器驅動的話,那么就可能會被修改為顯示器對應的色彩空間,以保證顯示圖片的準確性,這個色彩空間,又稱程序的工作空間。而程序在打開某一張圖片時,會加載圖片的信息,大多數(shù)圖片都會有色彩空間的文件頭信息,當應用程序讀取了這個文件頭信息后,就會讀取原圖的像素信息,并將這些像素顏色轉換為工作空間對應的顏色,并輸出到系統(tǒng)中,圖片所保存的色彩空間,實際上就是輸入色彩空間。
??這一步轉換完成后,軟件會將圖像顯示操作用系統(tǒng)函數(shù)實現(xiàn),系統(tǒng)再將軟件提供的工作空間的顏色轉換為顯示器(硬件)對應色彩空間的顏色,輸入進顯示器中,顯示器最后將這個顏色展示出來,完成了一張圖片的顯示工作。
??所以,一張圖片在打開的時候,實際上經(jīng)過了兩步色彩空間的轉換,才能最終顯示出來。其中第二步一般交給系統(tǒng)和驅動完成,是從軟件到硬件層面的轉換,而我們在程序中所做的色彩管理,實際上就是對第一步的操作,即軟件層面的轉換。
??當然,有的圖片可能沒有進行色彩管理,文件信息中沒有保存色彩空間的類型,這種圖片程序打開時會省略第一步,直接將原圖片的顏色值輸入軟件工作空間中,并進行第二步轉換。所以這種情況下,如果工作空間與原圖想使用的色彩空間不一致,會直接影響第2步轉換的準確性,造成色差。因此,在作圖軟件中制作圖片時,最好指定色彩空間,一般選擇默認值sRGB即可,但不可選擇'不做色彩管理'選項。
??綜上所述,色彩管理是圖像文件,軟件設置所共同需要做的事情,兩個環(huán)節(jié)缺一不可,否則都會造成轉換結果的混亂。
??由于日常生活中絕大多數(shù)圖片,如Web上傳輸?shù)膱D片,手機拍攝的照片,Photoshop設計的簡單圖片,各種壁紙等,多數(shù)均使用sRGB色彩空間,且大多數(shù)人電腦和手機顯示屏使用的色彩空間均是sRGB,所以在一般用途中,如Web傳輸,為了保證色彩的準確性,盡可能地傳輸sRGB的圖片,這樣可以避免在沒有完善色彩管理的設備、系統(tǒng)和軟件(如某些舊版瀏覽器)上仍然能夠正確地展示出圖片的色彩來。只有用于某些專業(yè)用途上,如需要使用廣色域的設計領域,才有足夠的必要傳輸Adobe RGB等色彩空間的圖片。因此我接下來所要用到的圖片,都是先轉換為sRGB再發(fā)布上去的。
??下面的圖直觀地展示了色彩管理的步驟。
??記原圖色彩空間為 S 0 S_0 S0?,程序所使用的工作空間為 S S S,顯示器色彩空間為 S m o n i t o r S_{monitor} Smonitor?,從 A A A色彩空間轉換到 B B B色彩空間(即輸入空間為 A A A,輸出空間為 B B B)的函數(shù)記作 f ( A , B ) f(A,B) f(A,B),轉換的過程記為 A → B A→B A→B。我們來討論一下從 S 0 S_0 S0?到 S S S轉換過程( S 0 → S S_0→S S0?→S)中所需要做的工作。
??色彩空間的具體程序實現(xiàn),需要用到配置文件的概念。配置文件,是色彩空間的描述文件。原圖片和軟件工作的色彩空間,由配置文件(icc文件)描述,所以原圖片中的色彩空間的存儲,本質上是植入了一個ICC配置文件,而軟件的工作空間,則需要通過加載一個icc文件來實現(xiàn)。
??以最常見的Photoshop軟件為例,Photoshop里有一套完整的色彩管理系統(tǒng)和算法,色彩管理的操作只需要提供配置文件的信息即可,具體轉化則是一系列的數(shù)學運算(轉換函數(shù)
f
f
f),由軟件內部的算法完成。
??下面我來講解色彩管理的實現(xiàn)過程
??下面我用具體的圖片示例來對比同一張圖片在sRGB和Adobe RGB空間下的顯示效果和區(qū)別。
??如下圖是一張彩虹圖片,原圖片是在Adobe RGB色彩空間下制作的,在Adobe RGB顯示器上展示效果如下。(下圖已將顏色轉換為sRGB,便于Web瀏覽的準確性)
??如果情況剛好相反,那么會不會產(chǎn)生相反的效果呢?
??下面有幾組壁紙圖片,其色彩空間均為sRGB,我們來看一下它在sRGB顯示器和Adobe RGB顯示器上的顯示效果對比:
??上面幾組圖對比后,可以發(fā)現(xiàn)每一組圖片中,下面的那幅圖(Adobe RGB)都比上面的那幅圖(sRGB)的要飽和一些。原圖是sRGB的圖片,在一臺沒有進行色彩管理的Adobe RGB顯示器的計算機上顯示,那么原本不太飽和的sRGB顏色就會變得非常飽和,也就是所謂的'過飽和'現(xiàn)象。這種現(xiàn)象經(jīng)常在廣色域顯示器上發(fā)生,當系統(tǒng)的色彩管理方面很差時,這種顯示器打開絕大多數(shù)圖片(sRGB)時都會出現(xiàn)這種問題,導致顯示很多圖片都會太過鮮艷,看起來很不舒服。
??綜上所述,色彩管理在不同色彩空間之間的交流過程中起到了非常重要的作用。通俗地說,沒有色彩管理的后果就是,如果我們用單反拍了一張Adobe RGB的風景照片,卻在sRGB顯示器上顯示,那么色彩就不如拍照時那么鮮艷,顯示效果就會欠佳;而如果我們在一個Adobe RGB的廣色域顯示器上顯示sRGB的圖片,如網(wǎng)上的圖片和大多數(shù)壁紙,那么顯示效果就會過于鮮艷,而夸大了原始圖片的色彩。
??總之,對于普通用戶,在絕大多數(shù)場合,為了兼容性保證,保險起見,不到萬不得已的情況下,請只使用sRGB進行圖像處理。只有在專業(yè)攝影和專業(yè)圖像處理的情況下,才有必要選擇Adobe RGB等色彩空間。但是,作為程序員,在設計軟件的時候,還是需要對色彩管理的知識有著完整而系統(tǒng)的掌握,才能使開發(fā)出來的軟件在色彩管理方面更強大,對色彩空間的兼容性更加良好。
附:
??Windows 10娘壁紙和主題包下載地址:
??地址1:https://download.csdn.net/download/weixin_44938037/12503223
??地址2:https://cloud.189.cn/t/bQvMRjmUzYN3
聯(lián)系客服