孫 瑤,楊 碩
(沈陽(yáng)化工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 遼寧 沈陽(yáng) 110142)
直方圖均衡化(histogram equalization,HE)是最簡(jiǎn)單有效的圖像增強(qiáng)算法之一,由于速度快,被廣泛用于圖像處理和預(yù)處理中.均衡化算法基于完備的數(shù)學(xué)理論,但受到離散誤差的影響,只是對(duì)灰度級(jí)進(jìn)行了適當(dāng)?shù)睦旌秃喜?,?shí)際效果取決于原直方圖的分布情況.與此類(lèi)似的是灰度拉伸算法,灰度拉伸對(duì)相鄰灰度級(jí)執(zhí)行的是等間距拉伸,不進(jìn)行灰度合并,或僅將超出0或255的灰度級(jí)合并.而直方圖均衡化后的灰度級(jí)間距取決于該灰度級(jí)對(duì)應(yīng)的像素?cái)?shù)目所占的比例,比例越高,間距越大,比例越小,越容易被合并.這種做法往往更容易被人眼接受,因此,直方圖均衡化得到了廣泛的應(yīng)用.
對(duì)于直方圖呈聚集分布的圖像,如,整體偏亮或偏暗的圖像,應(yīng)用直方圖均衡化會(huì)產(chǎn)生較好的圖像增強(qiáng)效果.這類(lèi)圖像經(jīng)過(guò)均衡化后,直方圖分布會(huì)由聚集變?yōu)榉稚?,提高了圖像的對(duì)比度.而對(duì)于存在明顯亮部和暗部(光照不均)的圖像,均衡化所帶來(lái)的對(duì)比度提升效應(yīng)則有可能導(dǎo)致過(guò)曝和欠曝現(xiàn)象,或者將相鄰的灰度級(jí)合并,使得圖像細(xì)節(jié)丟失,產(chǎn)生過(guò)增強(qiáng)現(xiàn)象.針對(duì)經(jīng)典算法的各種問(wèn)題,研究人員提出了大量的改進(jìn)算法.如:文獻(xiàn)[1]提出一種根據(jù)灰度級(jí)間距加權(quán)的灰度級(jí)合并判定方法,對(duì)兩個(gè)灰度是否合并進(jìn)行判斷,較好地保留了圖像的細(xì)節(jié);文獻(xiàn)[2]在灰度直方圖基礎(chǔ)上,引入了梯度幅值直方圖,分別進(jìn)行均衡化并迭代融合,改善了經(jīng)典直方圖均衡化細(xì)節(jié)丟失的問(wèn)題;文獻(xiàn)[3]根據(jù)輸入圖像的平均亮度獲得閾值,并自適應(yīng)修剪直方圖,將直方圖峰值修剪并移至峰谷處,從而限制了均衡化過(guò)程對(duì)對(duì)比度的增強(qiáng)效果;文獻(xiàn)[4]先進(jìn)行直方圖均衡化,再根據(jù)人眼對(duì)灰度級(jí)的分辨能力對(duì)截取的部分直方圖進(jìn)行灰度拉伸,提高了算法的保邊緣能力.
以上算法屬于全局算法,較實(shí)用的是限制對(duì)比度的直方圖均衡化算法(contrast limited adaptive histogram equalization,CLAHE)[5].CLAHE通過(guò)對(duì)直方圖的修剪,改變了灰度級(jí)的比例,從而抑制了過(guò)度均衡化.基于CLAHE,很多學(xué)者提出了改進(jìn)策略,如:通過(guò)插值加快速度[6],改變?yōu)樽赃m應(yīng)閾值[7],用拉普拉斯梯度算子增強(qiáng)細(xì)節(jié)[8],用伽馬矯正提高視覺(jué)效果[9].CLAHE改善了全局算法的各種問(wèn)題,但計(jì)算量過(guò)大,且未能根本解決過(guò)增強(qiáng)的問(wèn)題.
本文提出一種改進(jìn)算法,旨在不減弱增強(qiáng)效果的同時(shí),改善過(guò)曝和欠曝問(wèn)題,保留圖像細(xì)節(jié),以及保持經(jīng)典HE算法高效的優(yōu)點(diǎn).算法受到多曝光融合算法的啟發(fā)[10-12],分別對(duì)圖像的亮部和暗部均衡化,將暗部變亮并將亮部變暗,經(jīng)過(guò)融合后,不僅不會(huì)破壞直方圖的均勻分布,在空間上,亮度的分布也更加均勻;同時(shí),將方差作為融合系數(shù),防止圖像細(xì)節(jié)丟失.不同于對(duì)全幅圖像做均衡化處理的全局算法,本算法將處理對(duì)象由全局圖像變成了被分割后的暗部和亮部?jī)刹糠謭D像,分別對(duì)亮部和暗部進(jìn)行均衡化處理,故屬于半全局算法.
算法的流程如圖1所示.令I(lǐng)為輸入的灰度圖像.首先,獲得圖像的直方圖(圖1中直方圖的橫坐標(biāo)為灰階,縱坐標(biāo)為像素的數(shù)目),并在直方圖上找到分割中點(diǎn)c,使得左右像素?cái)?shù)目相同(接近相同),將圖像分為亮部和暗部.然后,重新分布直方圖,以暗部的處理方式為例,具體做法是:將另一半直方圖(亮部)平均分布化,即將平均值平均分配給整個(gè)灰度階(0-255);對(duì)于亮部,采用對(duì)稱的方式處理(如圖1).相比圖2中CLAHE算法所采用的限制對(duì)比度的直方圖處理方式,本文的做法實(shí)際上略微增強(qiáng)了對(duì)比度,均衡化后的暗部和亮部圖像記為Il和Ih.
圖1 算法處理流程Fig.1 Algorithm processing flow
圖2 限制對(duì)比度的直方圖均衡化原理(CLAHE)Fig.2 Contrast limited adaptive histogram equalization(CLAHE)
對(duì)圖像的暗部進(jìn)行直方圖均衡化,可以拉伸直方圖的低值部分,避免了經(jīng)典直方圖均衡化對(duì)直方圖低值部分的壓縮帶來(lái)的欠曝光現(xiàn)象;同理,對(duì)亮部進(jìn)行均衡化可以避免過(guò)曝問(wèn)題.
圖像融合過(guò)程是將經(jīng)過(guò)直方圖均衡化的暗部和亮部圖像合成為最終結(jié)果的過(guò)程.由于暗部和亮部均來(lái)自于同一圖像,因此,算法屬于偽曝光融合.融合公式為
O(i)=Tl(i)×Il(i)+Th(i)×Ih(i).
(1)
其中:
式(1)中:Il和Ih分別為均衡化后的暗部和亮部圖像;Tl和Th為對(duì)應(yīng)的歸一化融合系數(shù);O為融合輸出.融合系數(shù)由歸一化的權(quán)重A和B組成,其中A為歸一化的分割權(quán)重,B為歸一化的方差權(quán)重;H為分割權(quán)重,E為方差權(quán)重;γ為方差權(quán)重在融合系數(shù)中所占的比例,該系數(shù)決定了細(xì)節(jié)保留程度,過(guò)小會(huì)導(dǎo)致細(xì)節(jié)模糊,過(guò)大則會(huì)引入噪聲或產(chǎn)生偽邊界效果,經(jīng)實(shí)驗(yàn),一般取1.0到5.0可以獲得較好的效果.獲取權(quán)重H和E是算法的關(guān)鍵.
分割權(quán)重H表示在融合過(guò)程中的固有系數(shù),分為暗部權(quán)重Hl和亮部權(quán)重Hh.其原理是:對(duì)于輸入圖像I在i位置處的像素值e,如果e小于分割點(diǎn)c,則Hl(i)應(yīng)大于Hh(i),表示在融合的時(shí)候用暗部圖像Il多一些;反之,Hl(i)應(yīng)小于Hh(i),則在融合的時(shí)候用亮部圖像Ih多一些.Hl和Hh要根據(jù)圖像像素值e和分割點(diǎn)c獲取.
(2)
圖3 Hl和Hh對(duì)應(yīng)的指數(shù)函數(shù)Fig.3 Exponential functions corresponding to Hl and Hh
圖4為圖1中示例圖像的暗部分割系數(shù)Hl和亮部分割系數(shù)Hh,越亮表示權(quán)重越大.
圖4 Hl和HhFig.4 Hl and Hh
圖像的局部方差能夠反映圖像的細(xì)節(jié),融合過(guò)程中,應(yīng)選取暗部圖像和亮部圖像中細(xì)節(jié)較多的部分.方差可以由積分圖快速獲取.
(3)
式(3)中,E(i)為圖像在i(i={x,y})位置處的局部方差;S和V可以通過(guò)積分圖快速獲??;n=W×W,W為窗口尺度.這里使用多尺度窗口計(jì)算方差,獲得圖像細(xì)節(jié),避免圖像均勻區(qū)域方差無(wú)法獲取和融合不平滑的現(xiàn)象.具體算法如下.
算法1:方差權(quán)重的獲取算法
輸入:均衡化后的暗部圖像Il或亮部圖像Ih,大小為w×h;令Wmax為w和h的較大者;令N為保存方差的計(jì)算次數(shù).
forW=5 toWmax/2 do
生成窗口{W,W};
fori=0 tow×hdo
if窗口超出圖像尺寸then
continue;
else
E(i)=E(i)+式(3)的方差值;
N(i)=N(i)+1;
endif
endfor
endfor
E=E/N;
算法1中,窗口尺度W從5開(kāi)始增加到Wmax/2,其增量可以采用絕對(duì)增量(如:1、2…)或相對(duì)增量(如:是上一個(gè)窗口的1.5倍或2倍等).使用小的絕對(duì)增量可以使權(quán)重平滑,但需要較大的計(jì)算量,一般情況下可以使用相對(duì)增量獲得效率和效果的平衡.圖5為算法1得到的El和Eh,使用的增量為1.5倍相對(duì)增量.像素越亮表示權(quán)重越大.
圖5 El和EhFig.5 El and Eh
為了保證算法的運(yùn)行效率,使用了OpenCV計(jì)算機(jī)視覺(jué)庫(kù).算法實(shí)現(xiàn)的軟件環(huán)境為:Windows 7.0+QT 5.9.2+OpenCV3.3.1;硬件環(huán)境為:Intel Core I3 3110M(2.4GHz)+8GB內(nèi)存.對(duì)比算法有:HE、CLAHE[6]和二維伽馬矯正[13].對(duì)比的指標(biāo)有全局方差Eg、平均梯度值Gavg和平均梯度數(shù)量Gn,具體定義為:
(1)全局方差Eg.全局方差主要反映圖像在空間上亮度分布的均勻性.為了避免梯度對(duì)全局方差計(jì)算的影響,計(jì)算全局方差前,需要用大尺度的高斯濾波器對(duì)圖像濾波.
(2)平均梯度值Gavg.用Sobel梯度算子獲取梯度幅度絕對(duì)值并求平均,該值能夠反映算法對(duì)細(xì)節(jié)的保留情況.
(3)平均梯度數(shù)量Gn.首先用Sobel梯度算法獲取梯度幅值絕對(duì)值;然后掃描梯度圖像,如果梯度絕對(duì)值大于10,將Gn加1;最后將Gn平均化.該值能夠反映梯度分布的均勻情況.
部分實(shí)驗(yàn)效果如圖6~圖9所示,圖像分辨率均為800×600.
圖6 場(chǎng)景1實(shí)驗(yàn)對(duì)比效果Fig.6 Scenario 1 experiment contrast effect
圖7 場(chǎng)景2實(shí)驗(yàn)對(duì)比效果Fig.7 Scenario 2 experiment contrast effect
圖8 場(chǎng)景3實(shí)驗(yàn)對(duì)比效果Fig.8 Scenario 3 experiment contrast effect
圖6~圖9的4個(gè)場(chǎng)景中,從圖像局部可以看出:HE算法均產(chǎn)生了過(guò)曝和欠曝現(xiàn)象;CLAHE 是局部算法,對(duì)細(xì)節(jié)保留最好,但存在明顯的過(guò)增強(qiáng)現(xiàn)象;二維Gamma算法處理后的圖像較柔和,但圖像增強(qiáng)效果不足,對(duì)圖像細(xì)節(jié)的保留效果也一般;半全局均衡化算法處理的結(jié)果具有較好的主觀視覺(jué)效果,整體亮度均勻,沒(méi)有發(fā)生過(guò)曝和欠曝現(xiàn)象,對(duì)細(xì)節(jié)的保留僅次于CLAHE 算法.表1為定量的實(shí)驗(yàn)數(shù)據(jù).
圖9 場(chǎng)景4實(shí)驗(yàn)對(duì)比效果Fig.9 Scenario 4 experiment contrast effect
表1 對(duì)比算法實(shí)驗(yàn)數(shù)據(jù)Table 1 Contrast algorithm experimental data
表1中,全局方差Eg指示出圖像整體的均勻程度,這里希望越小越好,從數(shù)據(jù)上看,半全局均衡化算法表現(xiàn)最好,HE算法增強(qiáng)了圖像的對(duì)比度,表現(xiàn)最差.平均梯度Gavg應(yīng)越大越好,對(duì)比算法中,CLAHE表現(xiàn)最好,但其梯度有很大一部分來(lái)自于對(duì)噪聲的放大,半全局均衡化算法表現(xiàn)稍差,該項(xiàng)指標(biāo)雖然能夠反映出圖像的細(xì)節(jié)保留程度,但并不一定客觀.表1中的Gn值僅記錄梯度的數(shù)量,能夠反映出梯度分布情況,希望越大越好,CLAHE因?yàn)閷?duì)噪聲放大的原因,在該項(xiàng)上表現(xiàn)最好,半全局均衡化算法其次.此外,表2 統(tǒng)計(jì)了幾種對(duì)比算法在圖6~圖9上的平均運(yùn)行時(shí)間,半全局均衡化算法慢于HE算法,但遠(yuǎn)快于CLAHE算法.半全局均衡化算法最耗時(shí)的部分是在算法1中計(jì)算多尺度局部方差的過(guò)程,實(shí)驗(yàn)中將窗口尺度增量設(shè)置為1.5倍的相對(duì)增量,在800×600的分辨率下需要計(jì)算12個(gè)尺度,該增量使效果和速度較為平衡.由于流程較少且使用積分圖加快了速度,半全局均衡化算法可以在800×600甚至更高的分辨率下實(shí)時(shí)運(yùn)行.
表2 處理速度對(duì)比Table 2 Processing speed comparison
直方圖分布不均是導(dǎo)致圖像質(zhì)量下降的重要原因,直方圖均衡化算法對(duì)于直方圖呈單峰值聚類(lèi)分布的情況具有較好的效果,但對(duì)于光照不均引起的雙峰分布的情況容易產(chǎn)生過(guò)曝、欠曝和細(xì)節(jié)丟失的問(wèn)題.針對(duì)這些問(wèn)題,本文提出了改進(jìn)的直方圖均衡化算法.實(shí)驗(yàn)結(jié)果證實(shí)了所提算法的有效性.由于算法的復(fù)雜度較低,算法可以用于視頻實(shí)時(shí)處理,具有較高的實(shí)用性.算法進(jìn)一步研究的方向?qū)⒓性冢?1)優(yōu)化直方圖初始分割閾值(暗部和亮部的中值c),該閾值對(duì)最終效果有較大的影響,將其固定在中值的做法是否合理還沒(méi)有得到充分驗(yàn)證;(2)參數(shù)的自適應(yīng)性,實(shí)驗(yàn)發(fā)現(xiàn)方差權(quán)重比例γ對(duì)最終結(jié)果也會(huì)產(chǎn)生影響,因此,有必要在未來(lái)的研究中將其改為自適應(yīng)閾值.