數字圖像處理成長之路10:理解直方圖均衡化,從現象到原理

直方圖均衡化是一種數字圖像處理技術,先來看看一張圖片。
這裏寫圖片描述
這張圖片我稱爲原圖,該圖下面區域有些曝光不足,看上去比較暗。
再來看另一張圖。
這裏寫圖片描述
這張圖片我稱之爲目標圖,比原圖顯得清晰,黑白較均勻,讓人眼更容易接受。

這張比較清晰的目標圖是原圖經過直方圖均衡化處理後得到的。

什麼是直方圖均衡化?首先來看看什麼是直方圖。

百度百科:
https://baike.baidu.com/item/%E7%9B%B4%E6%96%B9%E5%9B%BE/1103834?fr=aladdin
維基百科:
https://en.wikipedia.org/wiki/Histogram

看一下原圖的直方圖:
這裏寫圖片描述
橫座標表示該灰度圖每個像素的灰度的取值範圍,在這裏是0-255,0表示最暗,255表示最亮,縱座標表示這幅圖中某一灰度出現的次數。
在觀察該直方圖會發現,亮度較多的集中在灰度20-70區域,較少集中在190-220區域,因此該原圖在整體上較暗,在局部上非暗即亮。這就彷彿一道菜,在口感上非鹹即甜,非軟即硬,缺乏過度和層次。

再看一下目標圖直方圖:
這裏寫圖片描述
對比兩個直方圖發現目標直方圖有幾個特點
1)像素的亮度分佈範圍比原圖更寬了(層次多,均)。
2)不同像素的亮度出現的次數之間的差值縮小了,也就是不再非黑即白,像素在其他灰度出現的次數增多了,圖中它們的高度差不多(層次分明,衡)。
3)從整體上看,如果把直方圖的頂點連成一條曲線,則兩個直方圖的曲線大致有相似性,不會相差太大。兩個直方圖都出現了一個最高的值,這兩個值是什麼關係呢?

通過上面的總結我們說說什麼是均衡化。均者勻也,使像素的灰度均勻的分佈在每處或每段灰度區域上(通俗的說就是過年了,社會主義給老百姓每家或每個家族都發豆腐,一家也不落下)。衡者平也,儘可能使像素在每個灰度級上出現的次數一樣多(每家或每個家族發的豆腐塊數一樣多)。

這就是直方圖均衡化的意義。在音頻處理中的均衡器也大致是這個意思。

接下來看看較官方的對直方圖均衡化的解釋
百度百科:
https://baike.baidu.com/item/%E7%9B%B4%E6%96%B9%E5%9B%BE%E5%9D%87%E8%A1%A1%E5%8C%96/7773653?fr=aladdin
維基百科:
https://en.wikipedia.org/wiki/Histogram_equalization
這兩個百科說的比較清楚,講的原理比較多,要想看懂需要一些高等數學的知識,好像學工科的人更喜歡實踐,對抽象的數學比較懼怕,爲了弄懂直方圖均衡化,我重學了一部分數學,總算大致弄明白了。

下面從數學角度分析一下直方圖均衡化:

S事件是一張圖片中的某像素的灰度值(通常值在0與255之間)在該圖上出現的次數,則離散型隨機變量s的(概率)分佈律爲{pi}。

分佈律表格爲:
這裏寫圖片描述

S的分佈函數(累積概率函數,CDF)爲:
這裏寫圖片描述, s = 0,1,2,…255

來看看原圖的分佈函數圖像:
這裏寫圖片描述

再來看看目標圖像的分佈函數圖像:
這裏寫圖片描述

目標圖像的分佈函數是我們期望得到的,因爲具有這樣分佈函數的圖像不會過暗和過量,那麼原圖經過怎樣的處理才能符合目標圖像的特徵呢?

設原圖像像素灰度s與目標圖像該點灰度d存在映射關係:
這裏寫圖片描述
則:
這裏寫圖片描述

這裏寫圖片描述這裏寫圖片描述
分別是目標圖像好原圖像的分佈函數,根據概率論知識,則:

這裏寫圖片描述

兩邊對d求導,結合連續型隨機變量的函數的概率分佈定理1及複合函數的求導法則有:

這裏寫圖片描述

又s d互爲反函數,根據反函數的求導法則,所以上式變爲:
這裏寫圖片描述

根據文章開頭分析,這裏寫圖片描述

則:
這裏寫圖片描述

這裏寫圖片描述

也就是這裏寫圖片描述
根據以上分析得出直方圖均衡化的計算步驟如下:
1)計算原圖像的直方圖
2)根據直方圖計算各灰度出現的概率
3)計算原圖象的關於各個灰度級的累積分佈函數
4)通過原圖某像素的灰度,找到對應的該灰度的累積概率,然後乘以255。

現在我們來回答上面曾提到的問題,均衡前後直方圖中那個最高點的值一樣嗎?答案是:不一定。在理論上他們相等,但實際上計算過程中會出現小數點,計算機根據四捨五入把它歸到臨近的灰度級。

至於程序,網上opencv和matlab有很多例子可以參考。

注:以上數學分析並不嚴謹,畢竟數學不是我強項,但整體思路應該是可以。

發佈了40 篇原創文章 · 獲贊 4 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章