徐尤華,熊傳玉
多顏色空間取色器的設(shè)計(jì)與實(shí)現(xiàn)
徐尤華,熊傳玉
目前常用軟件使用顏色時(shí)多以RGB顏色空間為主,也有少數(shù)軟件使用了HSB、Lab、CMYK等顏色空間。在膚色檢測(cè)研究領(lǐng)域,RGB顏色空間已經(jīng)滿足不了研究需要,通常會(huì)采用HSI、HSV、YCbCr、YIQ、YUV等顏色空間,用于提高膚色檢測(cè)的準(zhǔn)確率和檢測(cè)效率。針對(duì)常見軟件的不足,給出了一款基于多顏色空間的取色器,實(shí)時(shí)抓取光標(biāo)位置的顏色,并轉(zhuǎn)換為HSI、HSV、YCbCr、YIQ、YUV顏色空間的表示形式,能讓用戶直觀的看到同一顏色在不同顏色空間的各個(gè)分量值,加深用戶對(duì)各種顏色的理解。
膚色檢測(cè);取色器;顏色空間;RGB;HSI
在膚色檢測(cè)、人臉識(shí)別和手勢(shì)識(shí)別等研究中,會(huì)通過對(duì)膚色的判斷將感興趣的部分分割出來。由于不同人種膚色會(huì)有差別,即使相同人種膚色也有體現(xiàn)一定的差異,再加上亮度等因素,對(duì)膚色識(shí)別的準(zhǔn)確率構(gòu)成一定的影響。通過科研人員大量的研究工作發(fā)現(xiàn),膚色檢測(cè)在特定的顏色空間結(jié)合特定的檢測(cè)方法,準(zhǔn)確率會(huì)有很大提高[1-3]。目前常見的顏色空間為RGB顏色空間,多數(shù)和取色、調(diào)色相關(guān)的應(yīng)用軟件都采用了RGB顏色空間,也有少部分專業(yè)軟件應(yīng)用了更多的顏色空間,如 office系列軟件提供了 RGB和HSL兩種顏色空間的取色及調(diào)色功能,Adobe系列軟件提供了 HSB、Lab、CMYK三種顏色空間的取色及調(diào)色功能。對(duì)于膚色檢測(cè)中常見顏色空間如HIS、HSV、YCbCr、YIQ、YUV等目前還沒有專業(yè)的軟件提供相應(yīng)的取色調(diào)色功能。為了方便研究者能夠直觀的看到同一顏色在不同顏色空間中各分量的取值情況,以及各分量隨著顏色變化而變化的具體情況,對(duì)常見顏色空間與RGB顏色空間的轉(zhuǎn)換進(jìn)行研究,設(shè)計(jì)了一款基于全屏幕取色的多顏色空間取色器。
1.1 RGB顏色空間
RGB顏色空間是通過對(duì)紅綠藍(lán)三種顏色通道的變化及相互疊加得到的各種顏色,是目前應(yīng)用最為廣泛的顏色空間。圖像中的每一個(gè)像素的RGB分量的取值范圍為[0,255],三種分量按照不同的比例進(jìn)行混合可以得到各種顏色。
1.2 HSI顏色空間
HSI顏色空間通過色調(diào)(Hue)、飽和度(Saturation)和強(qiáng)度(Intensity)3個(gè)分量來感知顏色,I分量與圖像的彩色信息無關(guān),H和S分量與人感受顏色的方式緊密相連,非常適合彩色特性的檢測(cè)與分析。
HSI顏色空間與RGB顏色空間的轉(zhuǎn)換公式如下:

1.3 HSV顏色空間
HSV顏色空間是通過色調(diào)(Hue)、飽和度(Saturation)和亮度(Value)來感知顏色。色調(diào)用角度度量,取值范圍為[0。,360。],飽和度取值范圍為[0.0,1.0],值越大越飽和,亮度取值范圍為[0.0,1.0]。
HSV顏色空間與RGB顏色空間的轉(zhuǎn)換公式如下[4]:
先對(duì)RGB的3個(gè)顏色分量進(jìn)行歸一化處理。

1.4 YCbCr顏色空間
YCbCr顏色空間通過亮度、藍(lán)色色度分量和紅色色度分量來感知顏色。
YCbCr顏色空間與RGB顏色空間轉(zhuǎn)換公式如下[5]:

1.5 YIQ顏色空間
YIQ顏色空間通常被北美的電視系統(tǒng)所使用,通過亮度、色調(diào)和飽和度來感知顏色。
YIQ顏色空間與RGB顏色空間的轉(zhuǎn)換公式如下[6]:

1.6 YUV顏色空間
YUV顏色空間通常被歐洲電視系統(tǒng)所使用,通過亮度和兩個(gè)色度來感知顏色。
YUV顏色空間與RGB顏色空間的轉(zhuǎn)換公式如下[8]:

通過線程監(jiān)控鼠標(biāo)的移動(dòng),獲取光標(biāo)在屏幕中的位置,抓取該像素點(diǎn)的顏色后,獲取該點(diǎn)RGB顏色空間的各個(gè)分量值,通過對(duì)應(yīng)轉(zhuǎn)換公式轉(zhuǎn)換為對(duì)應(yīng)顏色空間的各分量值。
2.1 開發(fā)平臺(tái)
Java是一種可以開發(fā)跨平臺(tái)應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,是由Sun公司于1995年推出。Java技術(shù)具有卓越的通用性、高效性、平臺(tái)移植性和安全性,廣泛應(yīng)用于個(gè)人 PC、數(shù)據(jù)中心、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算機(jī)、移動(dòng)電話和互聯(lián)網(wǎng),同事?lián)碛腥蜃畲蟮拈_發(fā)者專業(yè)社群。在全球云計(jì)算和移動(dòng)互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,Java更具備了顯著優(yōu)勢(shì)和廣闊前景。
2.2 光標(biāo)位置的獲取
為了獲取有關(guān)鼠標(biāo)的信息,Java中 MouseInfo提供了getPointerInfo()方法用于返回表示鼠標(biāo)指針當(dāng)前位置的PointerInfo實(shí)例,再通過該實(shí)例調(diào)用getLocation()方法獲取屏幕上表示指針坐標(biāo)的Point對(duì)象,通過Point對(duì)象可以獲取到表示(x,y)坐標(biāo)空間中的位置。
MouseInfo類能夠獲取某個(gè)點(diǎn)的位置信息,而取色器需要在鼠標(biāo)移動(dòng)過程中實(shí)時(shí)獲取所在位置的顏色,通過獨(dú)立的線程來監(jiān)控鼠標(biāo)當(dāng)前位置以達(dá)到實(shí)時(shí)獲取對(duì)應(yīng)位置顏色的目的。

以上代碼每隔 100毫秒獲取一次鼠標(biāo)位置信息,設(shè)置schedule()方法的第三個(gè)參數(shù)可以調(diào)整兩次獲取位置之間的時(shí)間間隔。
2.3 像素點(diǎn)顏色的獲取
Java的awt包中Robot類用于為測(cè)試自動(dòng)化、自運(yùn)行演示程序和其他需要控制鼠標(biāo)和鍵盤的應(yīng)用程序生成本機(jī)系統(tǒng)輸入事件。調(diào)用 getPixelColor()方法可以獲取給定屏幕坐標(biāo)處的像素顏色。
獲取鼠標(biāo)位置信息的線程獲取到鼠標(biāo)位置信息后,將位置信息傳入 getPixelColor()方法即可得到對(duì)應(yīng)位置的顏色信息。

2.4 顏色空間轉(zhuǎn)換
為了方便的對(duì)各種顏色空間分量數(shù)據(jù)以及相互的轉(zhuǎn)換進(jìn)行管理,為各個(gè)顏色空間建立相應(yīng)的模型,在各個(gè)模型中提供轉(zhuǎn)換方法,及各分量的管理方法。
幾乎所有的顏色空間分量都可以通過RGB顏色空間的各個(gè)分量轉(zhuǎn)換得到,因此,各個(gè)模型的構(gòu)造方法直接通過RGB顏色構(gòu)造自己的顏色分量。

以上為HSI顏色空間模型部分代碼,其他顏色空間模型類似。
2.5 程序運(yùn)行界面截圖
程序啟動(dòng)后,監(jiān)控鼠標(biāo)的線程隨即啟動(dòng),監(jiān)控光標(biāo)位置,得到光標(biāo)位置后,獲取對(duì)應(yīng)點(diǎn)的顏色轉(zhuǎn)換為各個(gè)顏色空間的表達(dá)形式,在界面上給出顏色效果以及各個(gè)分量的值,如圖1所示:
多顏色空間取色器總結(jié)了目前常見軟件對(duì)顏色空間的使用情況,針對(duì)膚色檢測(cè)中常見的顏色空間,分別給出了各個(gè)顏色空間的各個(gè)分量值,能夠讓用戶直觀的看到同一顏色不同顏色空間的數(shù)值表示形式,對(duì)顏色有一個(gè)更深入的認(rèn)識(shí)。

圖1 程序運(yùn)行界面截圖
[1] 徐戰(zhàn)武,朱淼良.膚色檢測(cè)最優(yōu)空間.計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)報(bào)[J].2006.9:1350-1351.
[2] 郭聳,顧國(guó)昌等.膚色相似度和動(dòng)態(tài)閾值相結(jié)合的膚色分割技術(shù).計(jì)算機(jī)工程與應(yīng)用[J].2010.46:1-3.
[3] 易軼虎,曲道奎等.基于參數(shù)查找表的膚色檢測(cè)算法[J].2010.3:262-263.
[4] 蔣崛,張小寧等.HSV空間中具有調(diào)整因子的膚色增強(qiáng)方法.真空科學(xué)與技術(shù)學(xué)報(bào)[J].2011.5:515-517.
[5] 胡曉燕,張宇.基于膚色的人臉檢測(cè)算法研究.合肥工業(yè)大學(xué)學(xué)報(bào)[J].2012.7:909-910.
[6] 趙曉暉,申鉉京.基于亮度的自適應(yīng)色度空間模型膚色算法研究.儀器儀表學(xué)報(bào)[J].2005.8:591-592.
Research and Implementation of Color Picker Based on Multi Color Space
Xu Youhua, Xiong Chuanyu
(Department of Computers, Guangdong Songshan Vocational College, Shaoguan 512126, China)
Currently, common software usually use RGB color space, while a few software use HSB, Lab, and CMYK as well. In skin color detection research field, as RGB can’t meet the researches’ requirements, HSI, HSV, YCbCr, YIQ and YUV color space is usually used, to improve the skin detection accuracy and efficiency. Aiming at the insufficient of common software, the paper create a color picker based on multiply color space, getting the color on the position of cursor, converting to HIS, HSV, YCbCr, YIQ,YUV color space representation. It can help users observe assignment component of different color space to one color intuitively, and enhance user’s understanding on various colors.
Skin Color Detection; Color Picker; Color Space; RGB; HSI
TP311
A
2014.09.25)
1007-757X(2014)12-0032-03
徐尤華(1977-),男,漢族,湖北荊門人,廣東松山職業(yè)技術(shù)學(xué)院計(jì)算機(jī)系,講師,碩士,研究方向:信息系統(tǒng)項(xiàng)目開發(fā)與管理,韶關(guān),512126
熊傳玉(1979-),女,漢族,湖北荊州人,廣東松山職業(yè)技術(shù)學(xué)院計(jì)算機(jī)系,講師,碩士,研究方向:web開發(fā),韶關(guān),512126