孫養龍 鄧計才 于廣游 周倩倩
(鄭州大學信息工程學院,河南 鄭州 450001)
基于安卓系統的色盲辨色軟件設計
孫養龍 鄧計才 于廣游 周倩倩
(鄭州大學信息工程學院,河南 鄭州 450001)
色盲人群的色彩分辨能力低于正常人,論文在分析H分量旋轉色盲矯正方法的基礎上,開發出了具有色盲模擬、色盲檢測和色盲矯正功能的實時視頻圖像處理系統,并在android系統移動終端上設計出了相應的應用軟件,經實際測試,該系統運行穩定,實時性好,可以幫助色盲色弱人群提高對色彩的分辨能力。
H分量旋轉;色盲仿真;色盲檢測;色盲矯正
色盲又稱色覺辨認障礙,由視網膜上傳遞顏色信息的感光錐體細胞異常或不全引起。色盲人群中,紅綠色盲最為常見,在男性和女性中的比例分別為8%和0.5%。目前對色盲的治療以矯正輔助為主。其中,在三通道色覺模型[1]基礎上利用圖像處理來輔助色盲色彩識別的方法,在安全性和可行性方面較其他方法具有明顯的優勢。
隨著電子信息技術的發展,研究人員將電子信息處理技術應用于色彩檢測提出了基于ARM系統的色盲矯正設計方案[2],該方案采用基于圖像幾何變換映射的色盲矯正方法[3],可有效改善色盲患者區分顏色的能力,但實用性不強。本文分析了經典色盲矯正算法的原理,在現有工作的基礎上,采用H分量旋轉算法[4],開發出了可以運行在手機等移動終端的安卓應用軟件,其開發和應用成本低,更加貼近實用。
2.1 色盲仿真模型
研究表明,正常人眼睛含三種錐體細胞,即L(短波類型)、S(中波類型)、M(長波類型),它們構成了人眼LMS空間模型。LMS空間和RGB空間的位置關系如圖1所示,其中箭頭方向(沿著L軸)為紅色盲的投影方向。沿L軸方向的顏色被投影到同一點,出現該方向上顏色的重疊和混淆,而紅色和綠色恰在此方向上,所以紅色盲不能分辨紅綠。同理,對于綠色盲,M軸為投影軸,導致顏色重疊混淆于R=G的平面上[5][6],因此綠色盲同樣不能辨別紅和綠;對于藍色盲,其投影軸和投影平面分別為S軸和B= G平面,最終造成藍色盲在分辨藍和綠上存在障礙。

圖 1 紅色盲色彩空間轉換圖
2.2 色盲矯正原理
從色盲仿真模型可知,顏色立方體中的顏色沿著某一方向投影到色盲顏色面上,在此方向上顏色的種類和多少,決定了色盲的類型和程度。H分量旋轉法通過旋轉H分量,達到以顏色立方體中黑白兩點間連線為軸旋轉立方體的目的,旋轉的結果使得大多數顏色不出現在同一投影方向上,從而使這些顏色能夠被很好地區分開。為此需要找到合適的旋轉角度。
實驗表明,對于容易混淆紅色和綠色的紅綠色盲,當對圖像的H分量旋轉120度時,可獲得最優的矯正圖像。因為在HSV顏色空間模型中,H分量旋轉120度后,紅色變換到綠色,綠色變換到藍色,而在色盲模型中,綠色和藍色在紅、綠色盲顏色面上的距離最大,所以矯正后圖像中相應的顏色信息會清楚的顯現出來。對藍色盲的矯正也是同理。
軟件的開發需要在PC機上完成,然后再移植到安卓系統上。本軟件的開發過程包括:開發環境搭建,結構設計和算法實現。
3.1 開發環境搭建
所需要的軟件安裝包有JDK,eclipse,Android SDK和NDK,ADT和CDT,OpenCV for android等。其中,JDK是應用最為廣泛的Java SDK,屬整個Java的核心,包括了運行環境、工具和基礎類庫;eclipse是基于Java且開放源碼的可擴展平臺,附帶有標準的插件集。根據軟件之間的依賴關系,按照一定的順序安裝軟件,JDK和eclipse是基本的開發環境,需要先行安裝和配置。
3.2 程序結構設計
根據本軟件預設的功能及對視頻圖像的處理方法,設計了如圖2所示的程序結構圖。在對視頻圖像進行變換前,先完成對所獲圖像的預處理,以提高后期處理的速度和效果。預處理后的圖像分別用于正常視頻顯示、色盲模擬處理和色盲矯正處理。最終通過軟件界面上的切換按鈕,分時顯示不同處理結果的視頻圖像。

圖2 程序結構圖
3.3 算法實現
3.3.1 色盲模擬實現
通過對圖像數據進行矩陣運算,可獲得在不改變圖像整體亮度和布局情況下的校正圖像。以紅色盲為例,模擬過程如圖3所示,包括:數學模型轉換,顏色通道提取與運算,通道合成和圖像顯示。

圖 3 紅色盲模擬程序流程圖
進行顏色通道提取時,程序運用opencv的圖像容器Mat存儲圖像數據的方法,將Java程序獲得的RGBa格式圖像通過數據指針進行。
3.3.2 矯正算法實現
矯正算法的理論基礎是H分量旋轉,根據該理論,在對圖像矩陣的實際處理過程中要經歷如圖4的變換過程。

圖 4 矯正算法實現框圖
圖4中H通道的數據矩陣加60,是因為在opencv中,對通道的賦值范圍是0~255,其中H通道元素的值以180為周期,即250所對應顏色與70所對應顏色等價,理論中需要做的120度旋轉,在程序中只需要轉過60度。經測試發現,對圖像進行H分量旋轉120度等效于RGB格式的圖像轉換為BRG格式的圖像,通過此方法可有效提高程序的運算速度。
基于上述程序結構和矯正算法,采用java及opencv相結合設計開發了顏色識別矯正系統軟件,并在手機上進行了測試,該手機系統為Andriod2.3,CPU型號為高通驍龍Snapdragon MSM8260,800萬像素CMOS攝像頭,視頻圖像分辨率為720P(1280×720,30幀/秒)。圖5展示了該軟件運行的工作界面。軟件打開,首先獲取到的是正常視頻圖像,觸摸菜單鍵后,在當前窗口的下方有正常、輔助和仿真三個一級菜單,選擇輔助模式后,即可獲得進行H分量旋轉之后的實時圖像;選擇仿真模式,會在當前窗口的中央彈出一個包含三個選項的二級菜單,在此可以選擇紅色、綠色和藍色三種色盲模式并獲得實時視頻圖像。

圖 5 軟件使用界面

圖 6 色盲檢測圖實驗結果
(因出版印刷原因,對圖中數字進行了處理,原圖請訪問:http://t.cn/8sPYFuG)
圖6中三幅圖像展示了本軟件對色盲檢測圖的處理效果。從圖①和圖②對比可以發現,色盲模擬中紅色盲效果非常明顯,正常情況下可以分辨出數字“26”,在經過色盲模擬處理之后數字“2”幾乎無法分辨。色盲矯正算法對圖像的處理結果如圖③所示,可以發現圖像較原圖①有明顯的變化,紅色盲原本不能分辨出的數字2得到清晰顯示。實驗結果表明,當我們面對需要分辨不同顏色的情景時,通過該軟件可以達到很好的分辨效果。
本文通過基于H分量旋轉的色盲矯正算法,開發出可高效運行于手機移動終端的安裝軟件。并對H分量的旋轉方法進行了改進,提高了算法執行的速度。軟件所采用的H分量旋轉算法對紅、綠、藍三種色盲均具有一定的矯正作用,增強了色盲患者對顏色的分辨能力,使其看到原圖像中看不到的信息。但算法本身是通過降低低頻顏色分辨率換取高頻顏色的分辨率,因此在處理顏色種類多且分布均勻的圖像時不能獲得最佳矯正效果。本文接下來的工作,是研究獲得針對不同圖像和色盲種類最佳H分量旋轉角度的方法,同時開發可佩戴的色盲輔助設備。
[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]王恩,馬煜,汪源源.嵌入式色盲圖像處理系統設計[J].中國醫療器械雜志,2011,1:45-49.
[3]王恩,馬煜,汪源源.基于圖像幾何變換映射的色盲矯正方法[J].生物醫學工程學進展,2011,32(2):63-67.
[4]鮑吉斌,汪源源,馬煌等.基于H分量旋轉的色盲矯正方法[J].生物醫學工程學進展,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
孫養龍(1988-)男,在讀碩士研究生,研究方向:嵌入式系統。