余廷忠,夏仁強(qiáng),胡如會(huì)
(貴州工程應(yīng)用技術(shù)學(xué)院信息工程學(xué)院,貴州 畢節(jié) 551700)
應(yīng)用直方圖均衡化實(shí)現(xiàn)圖像增強(qiáng)
余廷忠,夏仁強(qiáng),胡如會(huì)
(貴州工程應(yīng)用技術(shù)學(xué)院信息工程學(xué)院,貴州畢節(jié)551700)
對(duì)圖像灰度及直方圖灰度分布概率密度函數(shù)進(jìn)行抽象分析,通過變換函數(shù)拓展和修正直方圖,使直方圖均衡化,從而實(shí)現(xiàn)圖像增強(qiáng),并得出相關(guān)結(jié)論;通過OpenCV開源分析庫平臺(tái),使用C++語言分別對(duì)直方圖進(jìn)行灰度、彩色及均衡化進(jìn)行編程輸出。
直方圖;直方圖均衡化;圖像增強(qiáng);OpenCV
圖像的直方圖其實(shí)是反映一幅數(shù)字圖像像素的分布統(tǒng)計(jì)表,橫坐標(biāo)代表圖像像素種類(如,灰度或彩色等),縱坐標(biāo)代表圖像中每種顏色值的像素總數(shù)(或者占總像素?cái)?shù)的百分比)。圖像由像素構(gòu)成,直方圖是反映圖像像素分布特征的一個(gè)重要工具。圖像的直方圖在圖像匹配、特征提取和在工程中都有廣泛的應(yīng)用。
在計(jì)算機(jī)視覺應(yīng)用中,圖像增強(qiáng)是數(shù)字圖像處理的重要領(lǐng)域之一。圖像增強(qiáng)是將不清晰的原始圖像變得清晰,或強(qiáng)調(diào)某些區(qū)域信息特征,使得不被關(guān)注的特征受到抑制,加強(qiáng)圖像的判讀并識(shí)別其圖像效果,豐富其信息量的圖像處理技術(shù)和方法。目前,圖像增強(qiáng)技術(shù)已普遍應(yīng)用于航空航天、生物醫(yī)學(xué)、工業(yè)生產(chǎn)及公共安全等領(lǐng)域。圖像增強(qiáng)是為了增強(qiáng)圖像局部或整體的視覺特效,包括對(duì)圖像的對(duì)比度擴(kuò)大或?qū)D像的清晰度提高等。[1]
圖像增強(qiáng)方法主要有頻率域法和空間域法兩類。頻率域法是在某個(gè)變化域內(nèi)間接通過修正變換系數(shù)值,使其逆變化增強(qiáng)圖像效果;空間域法主要通過空間域,對(duì)圖像灰度系數(shù)直接進(jìn)行處理??臻g域法分灰度級(jí)校正、直方圖修正和灰度變化,直方圖均衡屬于空間域單點(diǎn)增強(qiáng)的直方圖修正法。[2]張雷洪等基于主客觀人眼視覺特性[3],提出主觀眼動(dòng)模型與客觀Itti模型相結(jié)合進(jìn)行圖像增強(qiáng)的方法。
本文將用數(shù)學(xué)方法從圖像灰度分布概率密度著手,對(duì)圖像的直方圖進(jìn)行表示;通過變換函數(shù)變換,對(duì)直方圖進(jìn)行拓展及修正,得出有一定應(yīng)用價(jià)值的兩個(gè)結(jié)論;最后通過OpenCV開源庫平臺(tái)對(duì)直方圖及直方圖均衡化進(jìn)行輸出。
直方圖是描述數(shù)字圖像或建模的一種重要方法。直方圖與模板在表示圖像的空間信息與匹配方面各有側(cè)重和優(yōu)劣。因此,有研究者提出將這兩種方法相結(jié)合的基于空間直方圖方法。[4]并在此基礎(chǔ)上,有學(xué)者提出空間直方圖相似度度量的改進(jìn)方法;[5]王曉紅等使用眼動(dòng)儀設(shè)備捕捉圖像重要信息,并通過直方圖進(jìn)行調(diào)整,使得圖像增強(qiáng)[6];鑒于映射圖模型能對(duì)空間信息量的控制,文獻(xiàn)[7]提出基于映射圖的特征描述方法。
經(jīng)過研究與實(shí)踐,我們已確認(rèn)如果一幅數(shù)字圖像質(zhì)量較差,其直方圖表現(xiàn)效果肯定不理想,那么可以使用直方圖均衡化技術(shù)做適當(dāng)處理,從而實(shí)現(xiàn)圖像清晰之效果。其基本思路是對(duì)原圖像中的原始像素灰度級(jí)別做一定的映射變換,使映射變換后圖像的灰度概率密度呈均勻分布。經(jīng)過幾何變換得到一幅灰度級(jí)別呈均勻分布的位圖圖像,說明圖像灰度動(dòng)態(tài)區(qū)域得到增加,從而使圖像對(duì)比度得到提高。如果一幅圖像的對(duì)比度較小,那么其直方圖分布的范圍也一定比較狹小,但通過均衡化處理,圖像對(duì)比度的動(dòng)態(tài)范圍就得到了增加。
1.1圖像灰度分布概率密度函數(shù)
為研究方便,定義r表示原圖像中像素的灰度級(jí),s表示變換后圖像的灰度級(jí),Pr(r)表示原圖像呈灰度分布的概率密度(函數(shù))。將圖像中像素的灰度級(jí)進(jìn)行歸一化處理[8]131,使得r的值的范圍被限定在
當(dāng)r=0時(shí)表示純黑色;當(dāng)r=1時(shí)表示純白色。若以r為坐標(biāo)軸橫軸,Pr(r)為縱軸,則可作出關(guān)于一幅圖像的分布密度曲線來,如圖1所示。
圖1 圖像灰度分布概率密度函數(shù)
1.2直方圖的定義
數(shù)字圖像在離散形式下,用rk表示其灰度級(jí),用nk表示圖像中所出現(xiàn)的rk灰度像素的個(gè)數(shù),用Pr(rk)替代Pr(r),則有下面式子成
圖2 灰度級(jí)直方圖
1.3直方圖的修改技術(shù)
滿足條件A,使得給定圖像的灰度級(jí)從根本上保證從白(r=1)到黑(r=0)的次序會(huì)不變;滿足條件B,使得給定圖像在映射變換的像素灰度值保證在允許的范圍內(nèi)。[8]132每個(gè)原圖像像素的灰度值r通過(3)變換,都會(huì)對(duì)應(yīng)地產(chǎn)生一個(gè)s的值。
顯然由(5)得出:
綜上所述,利用累積分布函數(shù),作為其灰度變換的函數(shù)經(jīng)過變換后,得到新灰度直方圖,而且其像素動(dòng)態(tài)范圍的取值也大大地得到了擴(kuò)展。雖然得到的(表示新灰度的)直方圖表現(xiàn)不太平坦,但比原圖像的要平坦許多。因此,對(duì)于圖像對(duì)比度較弱時(shí),用這種方法處理是比較適合和有效的。
用直方圖均衡化處理圖像的基本步驟是:
再把(7)代入(5),則,并求出變換以后新的灰度。
對(duì)于離散灰度變換來說,原圖像變換后灰度級(jí)必將減少,由于這種簡(jiǎn)并現(xiàn)象存在的原因,使得直方圖均衡只能是近似的。發(fā)生簡(jiǎn)并的根源是用公式求解新灰度時(shí),得到的通常不是許可的灰度值,因此我們常采用舍入的近似值方法求解,以便使用最接近的灰度進(jìn)行替代。要減少簡(jiǎn)并現(xiàn)象,可以用增加(像素)比特?cái)?shù)方法或灰度間隔放大理論的直方圖修正法。[8]137
3.1OpenCV簡(jiǎn)介
OpenCV(OpenSource Computer Vision Library),是一個(gè)輕量級(jí)、基于(開源)發(fā)行的圖像及視頻的計(jì)算機(jī)視覺分析庫。它由若干 C 函數(shù)和C++ 類構(gòu)建而成,包含500多個(gè)優(yōu)化算法,同時(shí)提供了Ruby、Python、MATLAB等語言接口,用于實(shí)現(xiàn)計(jì)算機(jī)視覺方面的很多通用算法。OpenCV代碼經(jīng)過適當(dāng)?shù)母膶懞?,可以正常的運(yùn)行在DSP系統(tǒng)或單片機(jī)系統(tǒng)中。
在OpenCV中,計(jì)算直方圖的函數(shù)為calcHist,該函數(shù)參數(shù)較多、功能極為豐富,下面是該函數(shù)的一些應(yīng)用實(shí)例代碼描述:
3.1.1計(jì)算圖像的灰度直方圖(主要代碼):
3.1.2計(jì)算圖像的彩色直方圖(主要代碼):
3.1.3計(jì)算圖像的不均勻直方圖(主要代碼):
3.1.4直方圖的直觀表示
上述對(duì)圖像直方圖的計(jì)算結(jié)果,實(shí)際上只是產(chǎn)生一個(gè)多維的數(shù)組,這很不直觀。如果我們希望直方圖的表示能夠像Microsoft Excel中那樣把相關(guān)的數(shù)據(jù)用圖表的形式直觀地表示出來,那么可以使用劃線函數(shù)line()來實(shí)現(xiàn)這個(gè)要求,下面以一個(gè)圖像的灰度直方圖為例,其核心代碼如下:
原圖像及上述代碼生成的直方圖分別如圖3(a)和圖4(a)所示。
3.2用OpenCV實(shí)現(xiàn)直方圖均衡化
在計(jì)算機(jī)視覺理論中,圖像的直方圖可以直觀地反映圖像的明暗程度及對(duì)比度等特征,因此可以利用直方圖變換技術(shù)對(duì)圖像畫面進(jìn)行調(diào)節(jié)。通過拉伸直方圖來覆蓋所有取值范圍,提高圖像對(duì)比度,從而簡(jiǎn)單有效地提高數(shù)字圖像的質(zhì)量。如果一幅圖像的灰度,在直方圖上集中地顯示在某一區(qū)間范圍內(nèi),說明該圖像色彩比較單一,但可以通過變換函數(shù)將其直方圖的灰度擴(kuò)展到更寬的范圍內(nèi),從而增加圖像的層次感。
直方圖的均衡化可以增強(qiáng)圖像對(duì)比度,使圖像的灰度更加均勻分布。在OpenCV中,提供了一個(gè)函數(shù),用于執(zhí)行直方圖均衡化,它的調(diào)用方式如下[9]88:
將這段代碼應(yīng)用于我們所給定的圖像cat.png后,得到均衡化后的圖像和均衡化后的直方圖,把它們分別與原圖像和原直方圖比較,其效果圖分別如圖3(b)和圖4(b)所示。
圖3(a)原圖像
圖3(b)均衡化后的圖像
圖4(a)原圖像直方圖
圖4(b)均衡化后的直方圖
顯然通過圖3(a)與圖3(b)對(duì)比可以看出,圖3(b)的圖像質(zhì)量得到明顯提升。由于查找表是一個(gè)基于全局的多對(duì)一的變換,所以圖像的直方圖無法變換成完全的平坦。但變換后的直方圖分布(圖4(b))比原圖(圖4(a))的直方圖更均衡了。
3.3OpenCV直方圖均衡化作用原理
對(duì)于一幅圖像的完全均衡直方圖來說,所有容器的像素?cái)?shù)量都相等。這可以通過以下規(guī)則來表達(dá):在一幅圖像均衡的直方圖中,p%像素的強(qiáng)度值不能大于255*p%。這條規(guī)則專門用于對(duì)一個(gè)直方圖的均衡化:強(qiáng)度i的映射值應(yīng)當(dāng)與強(qiáng)度值不大于i的像素所占的比例相對(duì)應(yīng)。所以需要的查找表可以由以下代碼構(gòu)建:
代碼中的p[i]表示強(qiáng)度值不大于i的像素?cái)?shù)(通常將p[i]稱為累積直方圖)。
需要指出,雖然直方圖均衡化可以大幅提升圖像的外觀,但最終的圖像效果及質(zhì)量要以原圖像的內(nèi)容來確定。
[1]金小賢,李衛(wèi)軍,陳旭.一種基于視覺特性的仿生圖像增強(qiáng)算法[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào), 2010(3):534-537.
[2]高均立.基于直方圖均衡化的數(shù)字圖像增強(qiáng)技術(shù)[J].陜西科技大學(xué)學(xué)報(bào),2011(2):118-121.
[3]張雷洪,杜曉萌,樊麗萍.基于主客觀視覺感知的圖像增強(qiáng)技術(shù)[J].包裝工程,2015(9):114-118.
[4]Birchfield S T,Rangarajan S.Spatiograms versus histograms for region-based tracking[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition(CVPR)2005.[s.l.]:IEEE,2005: 1158-1163.
[5]Conaire C O,Connor N E,Smeaton A F.An improved spatiogram similarity measure for robust object localization[C]//Proc of IEEE International Conference on Acoustics,Speech,and Signal Processing(ICASSP) 2007.Honolulu:IEEE,2007:1069-1072.
[6]WANG Xiao-hong,ZHANG Ting.Color Image Enhancement Based on Visual Region of Interest[J]. Packaging Engineering,2014(3):84-87.
[7]Nilsson M,Bartunek J S,Nordberg J,et al.On histograms and spatiograms-introduction of the mapogram [C]//ICIP2008.San Diego:IEEE,2008:973-976.
[8]阮秋琦.數(shù)字圖像處理基礎(chǔ)[M].北京:清華大學(xué)出版社,2009.
[9](加)Robert Laganiere.OpenCV2計(jì)算機(jī)視覺編程手冊(cè)[M].張靜,譯.北京:科學(xué)出版社,2013.
Implementing Image Enhancement through Histogram Equalization
YU Ting-zhong,XIA Ren-qiang,HU Ru-hui
(School of Information Technology,Guizhou University of Engineering Science,Bijie, Guizhou 551700,China)
First,theoretically this paper conducted abstract analysis of image hue and probability density function of the gray scale distribution of the histogram;implemented image enhancement and drew relevant conclusion through histogram equalization by transforming function expansion and revising histogram; then,in practice,applying histogram and histogram equalization function provided by OpenCV open-source analysis library,the histogram was programmed on color and grayscale equalization in C++language.
Histogram;Histogram Equalization;Image Enhancement;OpenCV
TP37
A
2096-0239(2016)02-0155-06
(責(zé)編:彭麟淋責(zé)校:明茂修)
2016-01-22
貴州省科學(xué)技術(shù)基金項(xiàng)目“基于OpenCV的數(shù)字摳像與圖像合成算法研究”,項(xiàng)目編號(hào):黔科合LH字[2014]7539號(hào)。
余廷忠(1965-),男,貴州大方人,貴州工程應(yīng)用技術(shù)學(xué)院信息工程學(xué)院副教授。研究方向:數(shù)字圖像處理技術(shù)。
夏仁強(qiáng)(1976-),男,貴州畢節(jié)人,貴州工程應(yīng)用技術(shù)學(xué)院信息工程學(xué)院講師。研究方向:計(jì)算機(jī)應(yīng)用。
胡如會(huì)(1978-),女,貴州金沙人,貴州工程應(yīng)用技術(shù)學(xué)院信息工程學(xué)院副教授。研究方向:計(jì)算機(jī)應(yīng)用。