測色儀檢測顏色原理之技術文章(1):RGB到Lab顏色空間轉換
一、引言
隨著印刷行業(yè)從模擬到數(shù)字的變化,色彩的準確再現(xiàn)問題已經(jīng)變得十分關鍵。我們需要使用色彩管理,以確保更好、更快、更準確地獲得彩色圖像。要做到圖像處理等過程中的色彩統(tǒng)一性和與設備無關性,就必須實行標準化、規(guī)范化的色彩管理。
所謂色彩管理,就是解決圖像在各色空間之間的轉換問題,使圖像的色彩在整個復制過程中失真小。其基本思路是:首先選擇一個與設備無關的參考色空間,然后對設備進行特征化,后在各個設備的色空間和與設備無關的參考色空間之間建立關系,從而使數(shù)據(jù)文件在各個設備之間轉換時有一個明確的關系可尋。雖然不可能讓不同設備上的所有顏色完全相同,但可以使用顏色管理來確保大多數(shù)顏色相同或相似,從而達到在某種意義上一致的顏色復制效果。
二、色彩空間轉換
色彩空間轉換是指把一個色彩空間中的顏色數(shù)據(jù)轉換或表示成另一個色彩空間中的相應數(shù)據(jù),即用不同的色彩空間中的數(shù)據(jù)表示同一顏色。在本文中,是將與設備相關的RGB色彩空間轉換到與設備無關的CIELab色彩空間。任何一個與設備有關的色彩空間都可以在CIELab色彩空間中測量、標定。如果不同的與設備相關顏色都能對應到CIELab色彩空間的同一點,那么,它們之間的轉換就一定是準確的。
色彩空間轉換的方法有很多種,本文主要介紹三維查表插值法和多項式回歸法。
1.三維查表插值法
三維查找表法是目前研究色彩空間轉換較為常用的算法。三維查找表算法的核心思想是,將源色彩空間進行分割,劃分為一個個規(guī)則的立方體,每個立方體的八個頂點的數(shù)據(jù)是已知的,將所有源空間的已知點構成一張三維查找表。當給定源空間中任意一個點時,能夠找到與之相鄰的八個數(shù)據(jù)點構成一個小立方體格子的節(jié)點,通過這個小立方體的八個頂點進行插值,得到目標空間對應的數(shù)據(jù)。
一般查找表法都是與插值法結合起來使用,變成帶有插值算法的三維查找表法,這種方法可分為三個步驟:
①分割:將源色彩空間按一定的采樣間隔分區(qū),建立三維查找表;
②查找:對于一個已知的輸入點,搜索源空間,找出包含它的由八個柵格點構成的立方體;
③插值:在一個立方體的柵格內(nèi),計算出非柵格點上的顏色值。
根據(jù)源空間的不同分割方式,常見的插值算法有:三線性插值、三棱柱插值、金字塔插值和四面體插值方法。
2.多項式回歸法
多項式回歸算法是指假設色彩空間的聯(lián)系可以通過一組聯(lián)立的方程估算出來。多項式回歸算法的必要條件就是源空間的點數(shù)應該大于所選擇的多項式的項數(shù)。此算法的重點在于計算出多項式的系數(shù),再將源色彩空間的數(shù)據(jù)代入多項式,就可以根據(jù)方程求出轉換后的結果。
多項式的形式分為很多種,本文采用項數(shù)為6的多項式,具體表達式如公式(1)所示。
(1)
該多項式的系數(shù)可以由公式(2)得到。
(2)
公式(2)中、的表達式分別如公式(3)、(4)所示,為矩陣的轉置,具體表達式如公式(5)所示。公式(3)中的表示多項式的項數(shù),在本題目中??;表示選取的源空間的點數(shù),在本題目中,由于對源空間(即RGB顏色空間)進行六級分割后得到216個點,故取。實際上,對于項數(shù)為6的多項式,只要取就可以得到多項式的系數(shù)。
(3)
(4)
(5)
公式(3)中的、、()為源空間的三個顏色值,公式(4)中的()為目標空間中表示顏色的三個數(shù)值中任意一個。
多項式回歸算法的特點是簡單、實現(xiàn)起來較為方便,且有著不錯的轉換效果;但使用項數(shù)少時精度較低,當項數(shù)過大時計算量大、且精度也不一定高。
3.色差
在評價彩色復制質量和控制彩色復制過程時,例如在實施色彩管理和評價印刷品顏色時,往往需要計算顏色的色差來實現(xiàn)控制顏色的目的。目前印刷業(yè)普遍采用的是CIE 1976 Lab均勻顏色空間,及其對應的色差公式,具體的表達式如公式(6)所示。
(6)
三、實現(xiàn)過程
先簡單介紹了本題目的操作平臺,再詳細說明了本題目中所使用數(shù)據(jù)的獲取方法,以及實現(xiàn)顏色空間轉換的詳細步驟。
1.操作平臺
本題目采用的操作系統(tǒng)為Microsoft windows XP,編程環(huán)境為Visual C++ 6.0,整個應用程序是基于MFC應用程序框架,還用到了OpenGL和OpenCV。
2.數(shù)據(jù)的獲取
數(shù)據(jù)分為建模數(shù)據(jù)及測試數(shù)據(jù)兩部分,建模數(shù)據(jù)用于計算多項式的系數(shù),測試數(shù)據(jù)用于分析算法的精確程度,來自源空間和目標空間的建模數(shù)據(jù)和測試數(shù)據(jù)均在Adobe Photoshop中采集得到。
①建模數(shù)據(jù)的獲取。本題目采用六級均勻分割來采集建模點,R、G、B分別依次取0,51,102,153,204,255。在PhotoShop的拾色器中依次輸入R、G、B的各組值,并記下該組值對應的L、a、b的值,記錄在文本中,如圖一所示。共得到63=216組值。
圖一 從拾色器中獲得數(shù)據(jù)
②測試數(shù)據(jù)的獲取本題目采用八級非均勻分割來采集測試點,R、G、B分別依次取0,36,72,108,144,180,216,255。采集方法同上,共得到83=512組值。
3.具體實現(xiàn)步驟
本題目具體實現(xiàn)的框架流程圖如圖二所示。
圖二 框架流程圖
如圖二所示,程序實現(xiàn)的具體步驟如下:
①先啟動Visual C++ 6.0,在MFC中設置OpenCV的運行環(huán)境。
②讀取建模數(shù)據(jù)。
③完成出多項式系數(shù)的計算:分別依據(jù)公式(3)、(4)、(5)得到、、。依次求出、、、,從而就得到了多項式的系數(shù)。
④讀取測試數(shù)據(jù)。
⑤繪制對RGB模型進行八級分割后相應Lab模型的三維彩色視圖。
⑥將由八級分割得到的每個點的RGB值帶入由步驟③得到的三個多項式中,分別計算出每個點的L、a、b值(后面稱此值為計算值),從而就通過多項式回歸法將RGB顏色空間轉換為Lab顏色空間。
⑦為了評判此顏色空間轉換方法的優(yōu)劣,就要通過計算色差來評判。對于每種顏色,將由步驟④得到的測量值與由步驟⑥得到的計算值求差得到、、,然后再依據(jù)公式⑥求出色差,畫出色差分布直方圖,并統(tǒng)計出在不同色差范圍內(nèi)的比例。
四、結果顯示與分析
按上節(jié)具體步驟,采用VC++6.0編程實現(xiàn)了PhotoShop中RGB到Lab顏色空間的轉換,本節(jié)主要將程序的運行結果顯示并進行簡要的分析。
1.結果顯示
本題目采用六級均勻分割建立了轉換關系,并利用八級非均勻分割對此方法的精度進行了測試,繪制了色差分布直方圖,并對色差進行了統(tǒng)計。程序實現(xiàn)的主體界面如圖三所示。
圖三 RGB到CIELab顏色空間轉換的主體界面
色差分布直方圖以及相關統(tǒng)計數(shù)據(jù),如圖四所示。
圖四 色差統(tǒng)計界面
對RGB模型進行八級分割后相應Lab模型的三維彩色視圖,如圖五所示。對RGB模型進行八級分割后,采用多項式回歸法轉換到Lab顏色空間模型的三維彩色視圖,如圖六所示。
圖五 八級分割RGB顏色空間后測試得到的Lab顏色空間三維彩色視圖
圖六 八級分割RGB顏色空間后轉換到Lab顏色空間的三維彩色視圖
2.結果分析與總結
如圖四所示,對512種顏色進行顏色空間轉換后的色差大值為28,從總體上看色差分布并不均勻。
經(jīng)統(tǒng)計,色差范圍在0~5之間共有74種顏色,占總體的14.45%;色差范圍在5~10之間共有264種顏色,占總體的51.56%;色差范圍在10~15之間共有157種顏色,占總體的30.66%;色差范圍在15~20之間共有13種顏色,占總體的2.54%;色差大于20的共有4種顏色,占總體的0.78%,而且數(shù)據(jù)顯示,在色差大于20的4種顏色中,純藍色(0,0,255)和純綠色(0,255,0)的色差大,另外兩種顏色的色差都小于21。對于這512種顏色,其中色差大為28,小為0,平均色差為9。總的說來,色差范圍大部分集中在5~15之間。
將圖五與圖六進行對比,可以發(fā)現(xiàn)使用多項式回歸法將RGB顏色空間轉換到Lab顏色空間模型,與測試得到的Lab顏色空間模型的形狀大體相似,表明本題目所獲得的結果是比較理想的。
五、總結
由此可見,使用多項式回歸法來進行顏色空間轉換還是比較準確的??刹捎貌煌棓?shù)的多項式,對相同的源空間到相同的目標空間的轉換結果進行比較;從而尋找出,在此源空間轉換到目標空間過程中,采用多項式的優(yōu)越項數(shù)。因此,對于此題目還需要進一步的研究。