曹 莉,許玉龍
(河南中醫(yī)藥大學(xué)信息技術(shù)學(xué)院,河南 鄭州 450000)
圖像增強技術(shù)是通過某種手段變換或增加原圖像數(shù)據(jù),從而改善圖像視覺效果,使圖像匹配視覺特性[1]。醫(yī)學(xué)CT圖像一般表現(xiàn)為信息量大且圖像噪聲多而雜、圖像暗區(qū)模糊等,嚴(yán)重影響醫(yī)學(xué)CT圖像的病理分析,從而導(dǎo)致醫(yī)生臨床診斷結(jié)果產(chǎn)生較大的偏差,因此對醫(yī)學(xué)CT圖像進(jìn)行圖像增強就變得尤為重要。
目前大量學(xué)者對醫(yī)學(xué)圖像增強方法進(jìn)行了研究,并取得了一定的研究成果。文獻(xiàn)[2]提出基于Canny算子加權(quán)引導(dǎo)濾波的Retinex醫(yī)學(xué)圖像增強算法。采用Canny邊緣檢測算子和加權(quán)引導(dǎo)濾波器,估計邊緣權(quán)重和光照,獲取入射光分量,根據(jù)Retinex算法,計算反射光分量,量化處理圖像后輸出增強圖像,該算法能夠保留圖像細(xì)節(jié)信息,但是圖像灰度分布范圍較小。文獻(xiàn)[3]提出基于剪切波和改進(jìn)Pal-King的圖像增強算法。采用剪切波變換分解圖像,通過自適應(yīng)閾值去噪去除圖像噪聲,利用剪切波反變換重構(gòu)圖像,運用Pal-King算法增強圖像。該算法能夠有效改善圖像的視覺呈現(xiàn)效果,但是該方法的圖像邊緣信息不完整。
針對上述問題,提出基于多尺度Retinex的醫(yī)學(xué)CT圖像增強算法。通過提取醫(yī)學(xué)CT圖像暗區(qū)信息,獲取醫(yī)學(xué)CT暗區(qū)圖像,線性平滑處理醫(yī)學(xué)CT暗區(qū)圖像,采用多尺度Retinex算法,計算醫(yī)學(xué)CT圖像像素間的明暗關(guān)系,轉(zhuǎn)換后得到增強醫(yī)學(xué)CT圖像。所提算法能夠擴大灰度分布范圍的同時,完整保留圖像邊緣信息,醫(yī)學(xué)CT圖像增強視覺效果較好。
恢復(fù)醫(yī)學(xué)CT圖像的關(guān)鍵就是獲得準(zhǔn)確的光照分布,首先將圖像轉(zhuǎn)換到RGB彩色空間[4],獲得圖像的RGB三通道圖像,然后將醫(yī)學(xué)CT圖像描述為
I(x)=J(x)t(x)+A(1-t(x))
(1)
式(1)中,I(x)表示醫(yī)學(xué)CT圖像;J(x)表示期望獲得的輻射值;A表示光照強度分布;t(x)表示沒被散射的光線部分。提取醫(yī)學(xué)CT圖像暗區(qū)信息,定義醫(yī)學(xué)CT圖像I(x)中每個像素點的三通道最小值構(gòu)成的圖像為Imin
(2)
對應(yīng)的圖像B為
(3)
式(3)中,Q(i,j)是以像素Ic(i,j)為中心的圖像塊,(x,y)表示Q(i,j)內(nèi)的任意像素點。
若醫(yī)學(xué)CT圖像I(x)為室內(nèi)光照下圖像,將B稱為醫(yī)學(xué)CT圖像I(x)的暗區(qū)圖像[5],室內(nèi)環(huán)境下會存在很多陰影或彩色,導(dǎo)致醫(yī)學(xué)CT圖像的一些信息量較低,因此以此為理論依據(jù)可估計光照強度分布如下
B(i,j)=Jdark(i,j)t(x)+A(i,j)(1-t(x))
(4)
式(4)中,Jdark(i,j)表示平均照度,因Jdark(i,j)的值無限接近于零可以忽略,則式(4)等價于
B(i,j)=A(i,j)(1-t(x))
(5)
故可以獲得醫(yī)學(xué)CT暗區(qū)圖像的光照強度部分圖A(i,j)可表示為
(6)
綜上可得在圖像中,光照強度分布圖與暗區(qū)圖像的大小和系數(shù)1-t(x)相關(guān),由此獲取醫(yī)學(xué)CT暗區(qū)圖像。
由于獲取的醫(yī)學(xué)CT暗區(qū)圖像是通過計算以其自身為中心的窗口內(nèi)最小值獲得的,但是若某一像素點的某一通道值極小時,所對應(yīng)的像素點都將成為這一極小值,就產(chǎn)生了分塊特性[6]。而光照強度通常是平滑過渡的,因此為解決這個問題還需要對其進(jìn)行線性平滑處理[7]。
線性平滑處理還需要滿足以下兩個要求:
1)醫(yī)學(xué)CT暗區(qū)圖像中灰度值沒有產(chǎn)生明顯變化的低頻區(qū)域;
2)保持醫(yī)學(xué)CT暗區(qū)圖像中灰度值變化較為明顯的高頻區(qū)域,以確保能夠完整地保留圖像邊緣信息。
為完成以上的線性平滑處理要求,在以醫(yī)學(xué)CT圖像I(x)上的一點為中心,大小為M×M的窗口Wk(k=1,2,…,w×h)內(nèi)的每個像素通過式(7)進(jìn)行線性近似
E=akB+bk
(7)
式(7)中,ak、bk為近似參數(shù)。
M的大小由圖像的大小w×h來決定,E的結(jié)果會隨著近似參數(shù)的變化而變化,E和B之間的差可由式(8)求得
(8)
式(8)中,ε為數(shù)值較低的常數(shù)用來平衡ak防止其過大。
使用線性回歸對R(ak,bk)進(jìn)行求解如下
(9)
式(9)中,uk和δk分別為B的平均值和方差。Ccount(W)表示窗口內(nèi)像素數(shù)量。
當(dāng)R(ak,bk)取最小值時,在低頻區(qū)域內(nèi),B和uk的值近似相等。線性近似參數(shù)的求解結(jié)果近似于ak=0,bk=uk,E=uk,即對窗口內(nèi)全部像素的灰度值平均化;在高頻區(qū)域內(nèi)ak、bk的解近似于ak=1,bk=0,E=B,即保持窗口內(nèi)原有灰度值[8]以滿足醫(yī)學(xué)CT暗區(qū)圖像線性近似的要求。
求得所有ak,bk以后,由于可能存在一個像素會同時在多個窗內(nèi)出現(xiàn)的問題,所以在獲得平滑結(jié)果時,取窗Wk內(nèi)全部ak、bk的平均值進(jìn)行運算,即:
在對醫(yī)學(xué)CT暗區(qū)圖像進(jìn)行線性平滑處理后,不但解決了分塊效應(yīng)的問題,并且修正了出現(xiàn)錯誤的區(qū)域,獲得用于醫(yī)學(xué)CT暗區(qū)圖像增強的光照強度分布圖。
多尺度Retinex算法認(rèn)為人眼處理輸入信息是分別按照長波、中波、短波單獨進(jìn)行處理的。由于部分醫(yī)學(xué)CT圖像為彩色圖像,因此也需要將其分解為長波、中波、短波三個波段與圖像R,G,B中三個分量相互對應(yīng)。為獲得分解后的醫(yī)學(xué)CT圖像將像素中R分量歸為第一幅圖像,G分量歸為第二幅圖像,B分量歸為第三幅圖像,三幅圖像分別對應(yīng)RGB三個波段的反射光強度。由于處理像素間明暗關(guān)系會使用到浮點運算。為保證后續(xù)的運算精度,需要將整數(shù)格式的像素值轉(zhuǎn)換為浮點數(shù)。
單尺度Retinex算法[9]的計算模型可以表示為
R(x,y)=logS(x,y)-log(F(x,y)?S(x,y))
(10)
式(10)中,R(x,y)代表增強醫(yī)學(xué)CT圖像,S(x,y)代表未被處理的醫(yī)學(xué)CT圖像,F(xiàn)(x,y)為環(huán)繞函數(shù),其表達(dá)式為
F(x,y)=λ*exp(-(x2+y2)/2c2)
(11)
式(11)中,λ表示尺度參數(shù),c表示環(huán)繞尺度,其數(shù)值大小對醫(yī)學(xué)CT圖像處理質(zhì)量有直接影響。但是單尺度Retinex算法處理后醫(yī)學(xué)CT圖像清晰度較低,并且會出現(xiàn)光暈,因此對加權(quán)求和與單尺度Retinex模型進(jìn)行融合,得到多尺度Retinex算法模型,如圖1所示。
圖1 多尺度Retinex算法模型示意圖
多尺度Retinex算法模型可以表示為
RMSRI(x,y)
=Qk{logSi(x,y)-log(Fk(x,y)?Si(x,y))}
(12)
式(12)中,RMSRI(x,y)為增強后的Si(x,y)通道輸出,k表示尺度數(shù)量,Qk表示k的相關(guān)權(quán)值,F(xiàn)k(x,y)為高斯環(huán)繞函數(shù)[10]。利用式(12)來提高圖片色彩恢復(fù)效果
Ci(x,y)=β[αlogSi(x,y)]
(13)
式(13)中,β為增益常數(shù),α為線性強度。通過對參數(shù)的反復(fù)研究得出當(dāng)α=123,β=45時,醫(yī)學(xué)CT圖像的最終處理效果最好,保留原圖中通道之間的相互關(guān)系,使最終獲得醫(yī)學(xué)CT圖像的色彩和實景場景更為接近。通過修正獲得的輸出顯示為
rMSRI(x,y)
=Qk{logSi(x,y)-log(Ci(x,y)?Si(x,y))}
(14)
式(14)中,rMSRI(x,y)表示修正獲得的輸出。由于經(jīng)多尺度Retinex算法處理后,原醫(yī)學(xué)CT圖像中最亮和最暗部分都會不同程度接近灰色,導(dǎo)致增強后的醫(yī)學(xué)CT圖像亮度范圍變小,真實感變差[11]。因此對原多尺度Retinex算法進(jìn)行如下處理
r(x,y)=log(S(x,y))-λlog(L(x,y))
(15)
式(15)中,L(x,y)表示歸一化光照估計值。
多尺度Retinex算法是基于假設(shè)為先驗來估計光照分量的,因此求得的反射分量并非是理想的增強醫(yī)學(xué)CT圖像,需對其明暗關(guān)系進(jìn)行進(jìn)一步處理。
若從醫(yī)學(xué)CT圖像中的(x1,y1)到(x2,y2)只有一條路徑,該路徑上存在N個像素,其值分別為(d1,d2,…,dn)。用連續(xù)相乘計算該路徑起點S(x1,y1)和終點D(x2,y2)之間的明暗關(guān)系,可表示為
(16)
式(16)中,T(x)為門限函數(shù),也就是說若相鄰像素值變化低于既定門限時,即可認(rèn)定其值沒有發(fā)生變化。
由于式(16)需要取連續(xù)乘積的對數(shù),因此首先可以取各個比值的對數(shù),然后將所有結(jié)果進(jìn)行加和,即
logD=T(x)(logd3-logd2)+…
+T(x)(logdn-logdn-1)
(17)
從式(17)可以看出,若將像素值d的對數(shù)logd直接相減也相當(dāng)于計算其比值,即logd1-logd2=logd1/d2,同理連續(xù)相乘也可以通過將每個比值取對數(shù)相加來獲得。因此得到可以通過連續(xù)相減或者連續(xù)相加的方法來計算醫(yī)學(xué)CT圖像像素間的明暗關(guān)系。
在像素明暗關(guān)系處理的過程中還存在兩個問題需要解決,一是門限的判決問題,即當(dāng)相鄰像素的亮度變化低于既定門限時,就可以將其反射能力判定為沒有發(fā)生變化[12];二是起點與終點之間存在多路徑問題,即在起點相同的情況下,像素點可通過不同的運動路徑到達(dá)終點,選擇路徑不同所得到的結(jié)果也會隨之發(fā)生不同。因此為解決以上問題,對醫(yī)學(xué)CT圖像進(jìn)行如下處理:
設(shè)醫(yī)學(xué)CT圖像大小為m×n,并且初始醫(yī)學(xué)CT圖像的各點明暗值相同,即
lightness[i][j]=constant≤i≤m,1≤j≤n
(18)
首先對水平方向距離h=m/2的任意兩個像素間明暗關(guān)系進(jìn)行計算如下
(19)
然后計算垂直方向兩個距離v=n/2的像素間明暗關(guān)系為
(20)
明暗值計算完成后,將水平方向距離調(diào)成h=m/4,垂直方向距離調(diào)成v=n/4,重復(fù)以上計算,直到兩個方向的距離均為1時,完成一次迭代。利用上述算法分別對長、中、短波進(jìn)行處理,獲得三個波段內(nèi)之間的明暗關(guān)系。根據(jù)多尺度Retinex算法,醫(yī)學(xué)CT圖像某點的色彩取決于三個波段的明暗值。若每個波段內(nèi)的明暗為8比特,最亮部分為255,最暗部分為0,采用下式進(jìn)行線性映射
(21)
式(22)中,min為在該波段內(nèi)明暗值最小值,max為在該波段內(nèi)明暗值最大值。Lb表示長波明暗值映射后的結(jié)果,轉(zhuǎn)換后得到線性增強醫(yī)學(xué)CT圖像,由此實現(xiàn)醫(yī)學(xué)CT圖像增強。
為了基于多尺度Retinex的醫(yī)學(xué)CT圖像增強算法的有效性,在MATLAB6.1的軟件環(huán)境下,將所提算法獲得的醫(yī)學(xué)CT圖像灰度值和增強視覺效果與文獻(xiàn)[2]算法、文獻(xiàn)[3]算法進(jìn)行對比分析。醫(yī)學(xué)CT圖像大小為512×512,使用OpenCV計算機視覺庫的基本數(shù)據(jù)結(jié)構(gòu),以及一些圖像操作的基本函數(shù)如cvLoadlmage、cvClonelmage等對圖像文件進(jìn)行打開及復(fù)制操作,以簡化過程。
為了驗證所提算法的醫(yī)學(xué)CT圖像增強效果,分別采用文獻(xiàn)[2]算法、文獻(xiàn)[3]算法與所提算法增強后的醫(yī)學(xué)CT圖像增強結(jié)果如圖2所示。
圖2 不同方法的醫(yī)學(xué)CT圖像增強效果對比結(jié)果
從圖2中可以看出,采用文獻(xiàn)[2]算法增強后的醫(yī)學(xué)CT圖像較為清晰,但仍存在失真現(xiàn)象,醫(yī)學(xué)CT圖像不夠平滑;文獻(xiàn)[3]算法由于在一定程度上合并了圖像灰度級,導(dǎo)致醫(yī)學(xué)CT圖像較為模糊,缺少邊緣信息;而所提算法增強后的醫(yī)學(xué)CT圖像較為平滑,視覺效果較好,能夠有效保留圖像邊緣輪廓信息,并且明顯改善圖像失真的問題。因為所提算法線性平滑處理醫(yī)學(xué)CT暗區(qū)圖像,采用多尺度Retinex算法,計算醫(yī)學(xué)CT圖像像素間的明暗關(guān)系,使最終獲得醫(yī)學(xué)CT圖像的色彩和實景場景更為接近,保持圖像灰度值變化較為明顯的高頻區(qū)域,以確保能夠完整地保留圖像邊緣信息,從而增強了醫(yī)學(xué)CT圖像視覺效果。
為了進(jìn)一步驗證所提算法的醫(yī)學(xué)CT圖像增強效果,分別采用文獻(xiàn)[2]算法、文獻(xiàn)[3]算法與所提算法的獲取醫(yī)學(xué)CT圖像灰度值結(jié)果如圖3所示。
圖3 不同方法的醫(yī)學(xué)CT圖像灰度值對比結(jié)果
從圖3可以看出,文獻(xiàn)[2]算法和文獻(xiàn)[3]算法增強后的醫(yī)學(xué)CT圖像灰度分布范圍較小,而所提算法增強后的醫(yī)學(xué)CT圖像灰度分布范圍較大。因為所提算法考慮分塊特性,線性平滑處理醫(yī)學(xué)CT圖像,使醫(yī)學(xué)CT暗區(qū)圖像中灰度值未產(chǎn)生明顯變化的低頻區(qū)域,保持窗口內(nèi)原有灰度值,以滿足醫(yī)學(xué)CT暗區(qū)圖像線性近似的要求,從而提高暗區(qū)圖像的信息量和對比度,擴大醫(yī)學(xué)CT圖像灰度分布范圍。
為實現(xiàn)醫(yī)學(xué)CT暗區(qū)圖像增強,擴大灰度分布范圍,提高醫(yī)學(xué)CT圖像的視覺效果。本文通過提取醫(yī)學(xué)CT圖像暗區(qū)信息,獲取醫(yī)學(xué)CT暗區(qū)圖像進(jìn)行線性平滑處理,采用多尺度Retinex算法,獲取圖像中像素間明暗關(guān)系,對像素空間進(jìn)行線性映射,得到增強醫(yī)學(xué)CT圖像。所提算法能夠有效還原真實場景信息,擴大灰度分布范圍,有效保留醫(yī)學(xué)CT圖像邊緣信息。但是由于運算量較大,導(dǎo)致運行速度較慢,還需要在實際應(yīng)用中對各個數(shù)據(jù)進(jìn)行進(jìn)一步優(yōu)化。