孫養(yǎng)龍 鄧計(jì)才 于廣游 周倩倩
(鄭州大學(xué)信息工程學(xué)院,河南 鄭州 450001)
基于安卓系統(tǒng)的色盲辨色軟件設(shè)計(jì)
孫養(yǎng)龍 鄧計(jì)才 于廣游 周倩倩
(鄭州大學(xué)信息工程學(xué)院,河南 鄭州 450001)
色盲人群的色彩分辨能力低于正常人,論文在分析H分量旋轉(zhuǎn)色盲矯正方法的基礎(chǔ)上,開發(fā)出了具有色盲模擬、色盲檢測和色盲矯正功能的實(shí)時(shí)視頻圖像處理系統(tǒng),并在android系統(tǒng)移動(dòng)終端上設(shè)計(jì)出了相應(yīng)的應(yīng)用軟件,經(jīng)實(shí)際測試,該系統(tǒng)運(yùn)行穩(wěn)定,實(shí)時(shí)性好,可以幫助色盲色弱人群提高對(duì)色彩的分辨能力。
H分量旋轉(zhuǎn);色盲仿真;色盲檢測;色盲矯正
色盲又稱色覺辨認(rèn)障礙,由視網(wǎng)膜上傳遞顏色信息的感光錐體細(xì)胞異常或不全引起。色盲人群中,紅綠色盲最為常見,在男性和女性中的比例分別為8%和0.5%。目前對(duì)色盲的治療以矯正輔助為主。其中,在三通道色覺模型[1]基礎(chǔ)上利用圖像處理來輔助色盲色彩識(shí)別的方法,在安全性和可行性方面較其他方法具有明顯的優(yōu)勢。
隨著電子信息技術(shù)的發(fā)展,研究人員將電子信息處理技術(shù)應(yīng)用于色彩檢測提出了基于ARM系統(tǒng)的色盲矯正設(shè)計(jì)方案[2],該方案采用基于圖像幾何變換映射的色盲矯正方法[3],可有效改善色盲患者區(qū)分顏色的能力,但實(shí)用性不強(qiáng)。本文分析了經(jīng)典色盲矯正算法的原理,在現(xiàn)有工作的基礎(chǔ)上,采用H分量旋轉(zhuǎn)算法[4],開發(fā)出了可以運(yùn)行在手機(jī)等移動(dòng)終端的安卓應(yīng)用軟件,其開發(fā)和應(yīng)用成本低,更加貼近實(shí)用。
2.1 色盲仿真模型
研究表明,正常人眼睛含三種錐體細(xì)胞,即L(短波類型)、S(中波類型)、M(長波類型),它們構(gòu)成了人眼LMS空間模型。LMS空間和RGB空間的位置關(guān)系如圖1所示,其中箭頭方向(沿著L軸)為紅色盲的投影方向。沿L軸方向的顏色被投影到同一點(diǎn),出現(xiàn)該方向上顏色的重疊和混淆,而紅色和綠色恰在此方向上,所以紅色盲不能分辨紅綠。同理,對(duì)于綠色盲,M軸為投影軸,導(dǎo)致顏色重疊混淆于R=G的平面上[5][6],因此綠色盲同樣不能辨別紅和綠;對(duì)于藍(lán)色盲,其投影軸和投影平面分別為S軸和B= G平面,最終造成藍(lán)色盲在分辨藍(lán)和綠上存在障礙。
圖 1 紅色盲色彩空間轉(zhuǎn)換圖
2.2 色盲矯正原理
從色盲仿真模型可知,顏色立方體中的顏色沿著某一方向投影到色盲顏色面上,在此方向上顏色的種類和多少,決定了色盲的類型和程度。H分量旋轉(zhuǎn)法通過旋轉(zhuǎn)H分量,達(dá)到以顏色立方體中黑白兩點(diǎn)間連線為軸旋轉(zhuǎn)立方體的目的,旋轉(zhuǎn)的結(jié)果使得大多數(shù)顏色不出現(xiàn)在同一投影方向上,從而使這些顏色能夠被很好地區(qū)分開。為此需要找到合適的旋轉(zhuǎn)角度。
實(shí)驗(yàn)表明,對(duì)于容易混淆紅色和綠色的紅綠色盲,當(dāng)對(duì)圖像的H分量旋轉(zhuǎn)120度時(shí),可獲得最優(yōu)的矯正圖像。因?yàn)樵贖SV顏色空間模型中,H分量旋轉(zhuǎn)120度后,紅色變換到綠色,綠色變換到藍(lán)色,而在色盲模型中,綠色和藍(lán)色在紅、綠色盲顏色面上的距離最大,所以矯正后圖像中相應(yīng)的顏色信息會(huì)清楚的顯現(xiàn)出來。對(duì)藍(lán)色盲的矯正也是同理。
軟件的開發(fā)需要在PC機(jī)上完成,然后再移植到安卓系統(tǒng)上。本軟件的開發(fā)過程包括:開發(fā)環(huán)境搭建,結(jié)構(gòu)設(shè)計(jì)和算法實(shí)現(xiàn)。
3.1 開發(fā)環(huán)境搭建
所需要的軟件安裝包有JDK,eclipse,Android SDK和NDK,ADT和CDT,OpenCV for android等。其中,JDK是應(yīng)用最為廣泛的Java SDK,屬整個(gè)Java的核心,包括了運(yùn)行環(huán)境、工具和基礎(chǔ)類庫;eclipse是基于Java且開放源碼的可擴(kuò)展平臺(tái),附帶有標(biāo)準(zhǔn)的插件集。根據(jù)軟件之間的依賴關(guān)系,按照一定的順序安裝軟件,JDK和eclipse是基本的開發(fā)環(huán)境,需要先行安裝和配置。
3.2 程序結(jié)構(gòu)設(shè)計(jì)
根據(jù)本軟件預(yù)設(shè)的功能及對(duì)視頻圖像的處理方法,設(shè)計(jì)了如圖2所示的程序結(jié)構(gòu)圖。在對(duì)視頻圖像進(jìn)行變換前,先完成對(duì)所獲圖像的預(yù)處理,以提高后期處理的速度和效果。預(yù)處理后的圖像分別用于正常視頻顯示、色盲模擬處理和色盲矯正處理。最終通過軟件界面上的切換按鈕,分時(shí)顯示不同處理結(jié)果的視頻圖像。
圖2 程序結(jié)構(gòu)圖
3.3 算法實(shí)現(xiàn)
3.3.1 色盲模擬實(shí)現(xiàn)
通過對(duì)圖像數(shù)據(jù)進(jìn)行矩陣運(yùn)算,可獲得在不改變圖像整體亮度和布局情況下的校正圖像。以紅色盲為例,模擬過程如圖3所示,包括:數(shù)學(xué)模型轉(zhuǎn)換,顏色通道提取與運(yùn)算,通道合成和圖像顯示。
圖 3 紅色盲模擬程序流程圖
進(jìn)行顏色通道提取時(shí),程序運(yùn)用opencv的圖像容器Mat存儲(chǔ)圖像數(shù)據(jù)的方法,將Java程序獲得的RGBa格式圖像通過數(shù)據(jù)指針進(jìn)行。
3.3.2 矯正算法實(shí)現(xiàn)
矯正算法的理論基礎(chǔ)是H分量旋轉(zhuǎn),根據(jù)該理論,在對(duì)圖像矩陣的實(shí)際處理過程中要經(jīng)歷如圖4的變換過程。
圖 4 矯正算法實(shí)現(xiàn)框圖
圖4中H通道的數(shù)據(jù)矩陣加60,是因?yàn)樵趏pencv中,對(duì)通道的賦值范圍是0~255,其中H通道元素的值以180為周期,即250所對(duì)應(yīng)顏色與70所對(duì)應(yīng)顏色等價(jià),理論中需要做的120度旋轉(zhuǎn),在程序中只需要轉(zhuǎn)過60度。經(jīng)測試發(fā)現(xiàn),對(duì)圖像進(jìn)行H分量旋轉(zhuǎn)120度等效于RGB格式的圖像轉(zhuǎn)換為BRG格式的圖像,通過此方法可有效提高程序的運(yùn)算速度。
基于上述程序結(jié)構(gòu)和矯正算法,采用java及opencv相結(jié)合設(shè)計(jì)開發(fā)了顏色識(shí)別矯正系統(tǒng)軟件,并在手機(jī)上進(jìn)行了測試,該手機(jī)系統(tǒng)為Andriod2.3,CPU型號(hào)為高通驍龍Snapdragon MSM8260,800萬像素CMOS攝像頭,視頻圖像分辨率為720P(1280×720,30幀/秒)。圖5展示了該軟件運(yùn)行的工作界面。軟件打開,首先獲取到的是正常視頻圖像,觸摸菜單鍵后,在當(dāng)前窗口的下方有正常、輔助和仿真三個(gè)一級(jí)菜單,選擇輔助模式后,即可獲得進(jìn)行H分量旋轉(zhuǎn)之后的實(shí)時(shí)圖像;選擇仿真模式,會(huì)在當(dāng)前窗口的中央彈出一個(gè)包含三個(gè)選項(xiàng)的二級(jí)菜單,在此可以選擇紅色、綠色和藍(lán)色三種色盲模式并獲得實(shí)時(shí)視頻圖像。
圖 5 軟件使用界面
圖 6 色盲檢測圖實(shí)驗(yàn)結(jié)果
(因出版印刷原因,對(duì)圖中數(shù)字進(jìn)行了處理,原圖請?jiān)L問:http://t.cn/8sPYFuG)
圖6中三幅圖像展示了本軟件對(duì)色盲檢測圖的處理效果。從圖①和圖②對(duì)比可以發(fā)現(xiàn),色盲模擬中紅色盲效果非常明顯,正常情況下可以分辨出數(shù)字“26”,在經(jīng)過色盲模擬處理之后數(shù)字“2”幾乎無法分辨。色盲矯正算法對(duì)圖像的處理結(jié)果如圖③所示,可以發(fā)現(xiàn)圖像較原圖①有明顯的變化,紅色盲原本不能分辨出的數(shù)字2得到清晰顯示。實(shí)驗(yàn)結(jié)果表明,當(dāng)我們面對(duì)需要分辨不同顏色的情景時(shí),通過該軟件可以達(dá)到很好的分辨效果。
本文通過基于H分量旋轉(zhuǎn)的色盲矯正算法,開發(fā)出可高效運(yùn)行于手機(jī)移動(dòng)終端的安裝軟件。并對(duì)H分量的旋轉(zhuǎn)方法進(jìn)行了改進(jìn),提高了算法執(zhí)行的速度。軟件所采用的H分量旋轉(zhuǎn)算法對(duì)紅、綠、藍(lán)三種色盲均具有一定的矯正作用,增強(qiáng)了色盲患者對(duì)顏色的分辨能力,使其看到原圖像中看不到的信息。但算法本身是通過降低低頻顏色分辨率換取高頻顏色的分辨率,因此在處理顏色種類多且分布均勻的圖像時(shí)不能獲得最佳矯正效果。本文接下來的工作,是研究獲得針對(duì)不同圖像和色盲種類最佳H分量旋轉(zhuǎn)角度的方法,同時(shí)開發(fā)可佩戴的色盲輔助設(shè)備。
[1]Martin CE,Keller JG,Rogers SK,et al.Color blindness and a color human visual system model[J].IEEE Transactions on Systems,Man and Cybernetics-Part A:Systems and Humans,2000,30:494-500.
[2]王恩,馬煜,汪源源.嵌入式色盲圖像處理系統(tǒng)設(shè)計(jì)[J].中國醫(yī)療器械雜志,2011,1:45-49.
[3]王恩,馬煜,汪源源.基于圖像幾何變換映射的色盲矯正方法[J].生物醫(yī)學(xué)工程學(xué)進(jìn)展,2011,32(2):63-67.
[4]鮑吉斌,汪源源,馬煌等.基于H分量旋轉(zhuǎn)的色盲矯正方法[J].生物醫(yī)學(xué)工程學(xué)進(jìn)展,2008(3):125-130.
[5]Brettel H,Vienot F,Mollon JD.Computerized simulation of color appearance for dichromats[J].Journal of Optical Society of Americal.1997,14:2647-2655
[6]Vienot F,Brettel H,Mollon JD.Digital video colourmaps for checking the legibility of displays by dichromats[J].Color Re?seach and Application.1999,24:243-252
R774.1+4
B
1671-0037(2014)03-54-2
孫養(yǎng)龍(1988-)男,在讀碩士研究生,研究方向:嵌入式系統(tǒng)。