直方圖均衡化

来源:互联网 发布:js中gbk编码转换utf8 编辑:程序博客网 时间:2024/06/05 14:15

http://www.cnblogs.com/cfantaisie/archive/2011/06/05/2073406.html

直方圖均衡化是灰度變換的一個重要應用,它高效且易於實現,廣泛應用於圖像增強處理中。圖像的像素灰度變化是隨機的,直方圖的圖形高低不齊,直方圖均衡化就是用一定的算法使直方圖大致平和。

均衡化處理後的圖象只能是近似均勻分布。均衡化圖象的動態范圍擴大了,但其本質是擴大了量化間隔,而量化級別反而減少了,因此,原來灰度不同的象素經處理後可能變的相同,形成了一片的相同灰度的區域,各區域之間有明顯的邊界,從而出現了偽輪廓。

如果原始圖像對比度本來就很高,如果再均衡化則灰度調和,對比度降低。在泛白緩和的圖像中,均衡化會合並一些象素灰度,從而增大對比度。均衡化後的圖片如果再對其均衡化,則圖像不會有任何變化。

灰度直方圖均衡化的算法,簡單地說,就是把直方圖的每個灰度級進行歸一化處理,求每種灰度的累積分布,得到一個映射的灰度映射表,然後根據相應的灰度值來修正原圖中的每個像素。

經典的直方圖均衡化算法可能存在以下一些不足:

  1. 輸出圖像的實際灰度變化范圍很難達到圖像格式所允許的最大灰度變化范圍。          
  2. 輸出圖像的灰度分布直方圖雖然接近均勻分布, 但其值與理想值1/n仍有可能存在較大的差異, 並非是最佳值。          
  3. 輸出圖像的灰度級有可能被過多地合並。由於灰度的吞噬也易造成圖像信息的丟失。         

為此人們提出了許多改進的直方圖均衡算法,詳細內容請參閱本文末尾提供的參考資料。

公式

要寫論文的同學可能需要用數學的方式來描述,下面我把前面講的內容概括成公式,以供參考。

概率密度函數(PDF)

為了計算方便,我們需要將直方圖歸一化,即把灰度范圍由0~255變為0~1。歸一化後的直方圖其實就是一個概率密度函數(PDF,probability density function),均衡化就是令概率密度為1。

我們用Pr(r)來表示原圖像的PDF,用Ps(s)表示均衡化之後的PDF,r、s分別代表均衡化前後的灰度值,r,s∈[0,1]。根據概率論的知識,可得出:

公式中,T(rk)來表示原圖像的第k個灰度級的轉換函數。Σ表示總和。Σnj/N表示0~j個灰度級的像素數量總和與像素總數的比值,也就是前面講過的百分位(當前色階與前面色階的所有像素數量÷總像素數量)。ΣPr(rk)表示第0~k的灰度級出現概率累積相加。因為s是歸一化的數值(s∈[0,1]),要轉換為0~255的顏色值,需要再乘上255,即S=ΣPr(rk)*255。

這個轉換公式也被稱為圖像的累積分布函數

(CDF,cumulative distribution function)。

彩色算法

彩色的直方圖均衡化其實就是對圖像某個或多個顏色通道進行灰度直方圖均衡化運算,常見的有以下幾種方法:

統計所有RGB顏色通道的直方圖的數據並做均衡化運算,然後根據均衡化所得的映射表分別替換R、G、B通道顏色值。 
分別統計R、G、B顏色通道的直方圖的數據並做均衡化運算,然後根據R、G、B的映射表分別替換R、G、B通道顏色值。 
用亮度公式或求RGB的平均值的方式計算亮度通道,然後統計亮度通道的直方圖的數據並做均衡化運算,然後根據映射表分別替換R、G、B通道顏色值。