摘要:圖像增強就是通過一定的方法對圖像進行處理和變換,它能有效地改善圖像整體質量和局部特征,是數字圖像的預處理。基于直方圖均衡化和規定化處理的圖像增強技術,能有效地改善圖像的對比度和灰度動態范圍。實驗結果表明,直方圖均衡化和規定化處理確能有效地改善圖像的對比度和灰度動態范圍,從而改善圖像的可視質量。
關鍵詞:圖像增強;直方圖;均衡化;規定化;灰度級;MATLAB
中圖分類號:TP391 文獻標識碼:A 文章編號:1009-3044(2011)04-0883-04
The Image Enhancement Based on Histogram
LONG Qing
(Chongqing Radio TV Group (Station), Chongqing 401147, China)
Abstract: Image enhancement which is also called image pre-processing ,can improve the visual quality of the whole and partial image, by transforming the image's data according to some special methods. The image enchancement based on histogram equalization and specification can improve the contrast details and the dynamic range of gray level of the image. The MATLAB experiments demonstrate that the image enchancement based on histogram equalization and specification actually make the image better in vision.
Key words: image enhancement; histogram; equalization; specification; gray level; MATLAB
在圖像攝取、傳輸和變換過程中, 由于受到系統噪聲、 曝光不足(或過量)以及相對運動等因素影響, 獲取的圖像往往會與原始圖像之間產生某些差異( 稱為降質或退化) 。降質后的圖像質量變差,從中提取的信息量減少,甚至出現錯誤信息。圖像增強技術可以根據圖像的模糊情況,采用各種特殊的技術手段來突出圖像中的某些信息, 削弱或消除無關信息,達到整體或局部改善圖像質量的目的。目前,圖像增強技術還沒有統一的技術標準,采用的方法也有所不同,常用的圖像增強技術有直方圖修改、圖像平滑濾波、圖像銳化等方法。本文將著重分析基于直方圖修改的圖像增強技術。
1 圖像增強
圖像增強就是通過一定的方法給原圖像附加一些信息或變換數據,有選擇地突出圖像中感興趣的特征,抑制圖像中某些不需要的特征,使圖像與視覺響應特性相匹配。在圖像增強過程中,不用分析圖像降質的原因,處理后的圖像不一定完全逼近原始圖像。增強圖像可以是一個失真的過程,其目的就是要改善圖像的視覺效果。針對給定圖像的應用場合,有目的地選擇強調圖像的整體特征或局部特征,將原來模糊的圖像變得清晰,擴大圖像中不同物體之間的特征差別,改善圖像質量,豐富信息量,加強圖像判讀和識別效果,從而滿足某些特殊分析的需要。
灰度是圖像的一個重要技術指標,對圖像灰度的研究有著廣泛的代表意義,本文將以灰度圖像作為研究對象。對于灰度圖像來說,所有的像素都可以用灰度來表示,其圖像灰度的亮度函數(陣列)大于零。
2 灰度直方圖
直方圖又稱柱狀圖,就是相對將一個變量的不同等級的頻數用柱狀線標繪的圖表。灰度直方圖反映了數字圖像中每一灰度級與其出現頻率之間的統計關系,可表達為:
p(rk)=nk/nk=0,1,2…L-1
其中,n為圖像像素總數,rk表示第k個灰度級,nk表示圖像中灰度級rk出現的像素的個數,p(rk)表示灰度級rk出現的概率。灰度直方圖是一個概率密度函數,如果圖像的灰度級都集中在很窄的灰度范圍內,則表明該圖像的灰度取值動態范圍小,相應的圖像對比度較低;如果圖像的灰度級比較均勻地分布在較大的灰度范圍內,則表明該圖像具有較大的灰度動態范圍,相應的圖像具有較大的對比度。灰度直方圖給出了關于圖像概貌的一個總體描述,從灰度圖中可以知道圖像的灰度范圍、每個灰度級的出現頻率、灰度級的分布、整幅圖像的平均明暗和對比度等情況,為進一步處理圖像提供了重要的依據。通過有針對性地改變直方圖的灰度分布狀況,使灰度均勻地或按預期目標分布于整個灰度范圍,從而達到增強圖像的效果。
3 直方圖均衡化
3.1 整體直方圖均衡化
直方圖均衡化就是把原圖像的直方圖通過灰度變換函數修正為灰度均勻分布的直方圖,然后按均衡直方圖修正原圖像。它以概率論為基礎,運用灰度點運算來實現,從而達到增強圖像的目的。它的變換函數取決于圖像灰度直方圖的累積分布函數。概括地說,就是把一已知灰度概率分布的圖像,經過一種變換,使之演變成一幅具有均勻概率分布的新圖像。當圖像的直方圖為一均勻分布時,圖像的信息嫡最大,此時圖像包含的信息量最大,圖像就顯得明亮清晰。
直方圖均衡化變換函數如圖1所示,設r、s分別表示原圖像和增強后圖像的灰度。為了簡單,假定所有像素的灰度已被歸一化。當r=s=0時,表示黑色;當r=s=1時,表示白色;當r、 s在[0,1]之間時,表示像素灰度在黑白之間變化。灰度變換函數為:S=T(r)
它滿足如下兩個條件:
(1) 0≤r≤1,T(r)單調增加。
(2) 0≤r≤1,0≤T(r)≤1。
第1個條件保證原圖各灰度級在變換后仍保持從黑到白(或從白到黑)的排列次序,第2個條件保證變換前后灰度值動態范圍的一致性。
直方圖均衡化涉及到連續變化圖像和離散圖像的均衡化問題,首先討論連續變化圖像的均衡化。對于一幅圖像,每一像素點的灰度級r可以看作是[0,1]區間上的隨機變量。假定r是連續變量,則可用概率密度函數pr(r)表示圖像的灰度級分布,用概率密度函數ps(s)表示變換后的灰度級分布,而隨機變量s是r的函數。現在要找出一個變換T(r),使得圖像經過此變換處理后,其概率密度函數pr(r)在新圖中變換成ps(s)。
在概率論中我們知道,任何一個隨機變量,其概率分布函數都是在[0, 1]之間變化的單調增加的單值函數,剛好滿足變換要求的兩個條件。因此,取:
■
等式右端即為隨機變量r的分布函數。作為隨機變量r的函數S,其概率分布函數為:■
相應的概率密度函數為:■
由S=T(r)可得:■
帶入上式可得:■
就是說,當取變換s=T (r)為被變換圖像的概率分布函數時,則所得到的變換后的圖像概率分布密度必然是歸一化均勻分布的,這一函數稱為直方圖累積分布函數。
上述結論可以推廣到離散情況。前面提到,對于一幅像素數為n,灰度范圍為[0,L-1]的圖像,其灰度直方圖可表達為:Pr(rk) =nk/n k=0,1,…L-1 ,其中rk表示第k個灰度級,nk表示圖像中rk出現的像素的個數, Pr(rk)為rk出現的概率。由此可得直方圖均衡化變換函數,即圖像的灰度累積分布函數Sk為:
■
Sk為歸一化灰階。
概括起來,直方圖均衡化過程如下:
1) 計算原圖像的灰度直方圖Pr(rk)。
2) 計算原圖像的灰度累積分布函數Sk,進一步求出灰度變換表。
3) 根據灰度變換表,將原圖像各灰度級映射為新的灰度級。
大多數自然圖像由于其灰度分布集中在較窄的區間,引起圖像細節不夠清晰。采用直方圖均衡化后可使圖像的灰度間距拉開或使灰度均勻分布,從而增大反差,使圖像變得清晰,達到增強的目的。
3.2 局部直方圖均衡化
在某些特定場合,有時也需要對圖像中某些較小區域內的細節進行增強。在這些小區域內,其像素的個數對全局變換函數的影響可能小到可以被忽略的程度。因此,在利用整體增強方法對圖像進行增強時,就不一定能保證所感興趣的小區域得到所期望的增強效果。為了解決這一問題,構造一個基于像素鄰域灰度分布的交換函數,將直方圖處理的方法移植到局部增強技術中。為了實現圖像的局部增強,先定義一個鄰域,在鄰域內確定一個像素作為中心,計算出灰度直方圖,利用這個直方圖進行直方圖均衡化處理,接下來將鄰域中心移到相鄰像素并重復以上過程,多次計算后即可實現該鄰域內圖像的局部增強。
應用局部直方圖均衡化對一幅M×N像素的圖像進行增強,對于圖像的任意一個像素(x,y),在以該像素為中心的鄰域內計算其局部直方圖累積分布函數(即局部灰度變換函數),并對中心像素(x,y)進行灰度變換。鄰域通常取為矩形區域,大小為W×W。對圖像中每一點(x,y),計算以它為中心的矩形區域內的直方圖:
■
其中,nk表示矩形區域中灰度級rk出現的像素的個數,計算累積分布函數,
■
然后對像素點(x,y)做灰度變換即可。
這個方法只有一個控制參數即矩形區域的大小W,它對處理結果會產生很大的影響,應用時要選擇合適的窗口大小,關于選擇窗口大小的一般原則是:小窗口更能增強圖像的局部細節信息,大窗口使整幅圖像看起來效果更好。但小窗口在增強圖像細節的同時,也引入了大量噪聲,容易出現圖像過增強的現象;大窗口對細節的增強程度不如小窗口好,但引入的噪聲較少。局部直方圖均衡化是一種自適應的方法,隨著窗口的增大,計算的數據量急劇增加。直方圖均衡化的實質是減少圖像的灰度等級以換取對比度的擴大。
4 直方圖規定化
由于直方圖均衡化是根據圖像灰度信息自動地增強圖像的對比度,所以直方圖均衡化只能產生一種結果,即給定一幅圖像,直方圖均衡化后的結果是唯一的。實際上,有時候希望增加圖像中的灰度級范圍,希望原始圖像的直方圖被轉換成指定的直方圖,這就需要對直方圖進行特定的規定。直方圖規定化可看作是直方圖均衡化方法的改進。假設Pr(r) 和Pz(z)分別表示原始圖像和期望圖像概率密度函數,直方圖均衡化,則:
■
由于均衡化處理產生的最后結果Ps(s)=1與積分內的概率密度無關,因此,處理后的原圖像和期望圖像的概率密度Ps(s)和Pv(v)具有相同的均勻密度。這樣,可以用從原始圖像中得到的均勻灰度s
代替逆過程中的v,其結果灰度級z=G-1(s)就是所要求的概率密度函數。從以上討論可以得到:■
對離散圖像, 相應的規定化表達式為:
■
概括起來,只要求出T(r)與反變換函數z=G-1(v),一幅圖像便可進行直方圖規定化處理。直方圖規定化處理步驟如下:
1) 對原始圖像進行直方圖均衡化。
2) 規定期望的概率密度函數,求出變換函數G(z)。
3) 計算逆變換z=G-1(v)函數,建立映射關系。
5 MATLAB實現
MATLAB中直方圖均衡化和規定化處理函數格式如下 :
1) J=imhist(I,n)
2) J=imhist(I,map)
3) [counts,X]=imhist(I, …)
4) J=histeq(I,n)
5) J=histeq(I,map,n)
6) [J,counts]=histeq(I, …)
說明: 對于格式1),計算和顯示圖像I的直方圖,n為指定的灰度級數目,灰度圖像的默認值為2 5 6,黑白圖像默認值為2;對于格式2),計算并返回調色板為ma p的圖像I 的直方圖;對格式3),返回圖像I 的每個灰度上的像素點數目;格式4)對圖像I 均衡化處理,n表示指定的灰度級數目,默認值為6 4;格式5)對調色板為map的灰度圖像均衡化處理,返回有n級灰度的圖像;格式6)對圖像I 均衡化處理同時返回各灰度值。
直方圖均衡化和規定化處理程序如下:
L=imread('333.jpg'); %讀入圖像
L=rgb2gray(L);
subplot(1,2,1);
imshow(L); %顯示圖像
title('原始圖像');
figure,imhist(L,256);%顯示原始圖像直方圖,灰度級為256
title('原始圖像直方圖');
J=histeq(L,32); %均衡化處理為灰度級為32的直方圖
figure,imshow(J);
title('均衡化圖像(32級)');
figure,imhist(J,256);
[counts,x]=imhist(J); %獲得均衡化處理后直方圖各像素點灰度級以便后面圖像規定化
title('均衡化圖像直方圖');
figure,K=imread('33.jpg');
K=rgb2gray(K);
subplot(1,2,1);
imshow(K);
title('要規定化圖像');
figure,imhist(K);
title('要規定化圖像的直方圖');
L=histeq(K,counts); %規定化處理
figure,imshow(L);
title('規定化后圖像');
figure,imhist(L);
title('規定化后直方圖顯示');
從圖2和圖4的對比中可以看到,經過均衡化處理后,圖像的亮度和對比度都得到了明顯改善,圖像變得清晰。在圖6和圖8的對比中可以看到,圖像的灰度動態范圍得到明顯的改善,隨著圖像灰度動態范圍的擴大,圖像變得豐富細膩。
6 結論
通過以上理論分析和MATLAB編程實驗表明,基于直方圖的圖像增強技術確能在一定程度上改善圖像的對比度和灰度動態范圍,提高圖像的清晰度。應該指出的是,圖像增強沒有固定和統一的技術標準,增強質量往往由增強目的而主觀評定。
參考文獻:
[1] 李耀輝,劉保軍.基于直方圖均衡的圖像增強[J].華北科技學院學報,2003,5(2):65-66.
[2] 徐飛,施曉紅.MATI A B應用圖像處理[M].西安:西安電子科技人學出版社,2002.
[3] 龔聲蓉,劉純平,王強.數字圖像處理與分析[M].北京:清華大學出版社,2006.
[4] 汪志云,黃夢為,等.基于直方圖的圖像增強及其MATLAB實現[J].計算機工程與科學,2006,28(2).