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