影象處理之直方圖處理
灰度級範圍為[0,L-1]的數字影象的直方圖是離散函式:
其中是第k級灰度值(=k),是影象中灰度值為的畫素個數。
通常用MN表示的影象畫素的總數除它的每個分量來歸一化直方圖,即:
M和N分別是影象的行和列維數,k = 0,1,...,L-1。歸一化直方圖的所有分量和為1。
若一幅影象的畫素傾向於佔據整個可能的灰度級並且均勻分佈,則該影象會有高對比度的外觀和灰度細節豐富的特點。如下圖:
直方圖均衡
用變數r表示待處理的影象的灰度,灰度變換函式通常需要滿足兩個條件:
- (a) T(r)在空間上為單調遞增函式
- (b) 當時,
當考慮反函式時,條件(a)改為:
- (a') T(r)在空間
條件(a)保證輸出灰度值不少於相應的輸入值,防止灰度反變換時產生人為的缺陷;條件(b)保證輸出灰度的範圍與輸入灰度的範圍相同;條件(a')保證從s到r的反對映是單值的,即一對一的,防止出現二義性。如下圖:
為了產生均衡的直方圖,使用如下的灰度變換函式:
....................................(1)
容易看出,該變換滿足條件a和b。
下面解釋為什麼經過(1)式的灰度變換能產生均衡直方圖。
令和分別表示隨機變數r和s的概率密度函式(PDF)。若和T(r)已知,則變換後的變數s的PDF為:
......................................................(2)
使用(1)式的變換函式,得:
將dr/ds代入(2)式,得:
可知,始終是一個均勻概率密度函式,與的形式無關。所以,經過(1)式灰度變換的影象能產生均衡直方圖。
(1)式的積分形式針對的是連續灰度值,而對於離散值,用求和的形式處理。一幅影象中灰度級出現的概率為:
(1)式中變換的離散形式為:
注:在實際使用中,需要將灰度值取近似為最接近的整數。
直方圖匹配(規定化)
直方圖匹配或直方圖規定化,是指處理後的影象具有規定的直方圖形狀。
具體說來就是,要找到一個灰度變換函式,使影象在該灰度變換函式的作用下,產生一個我們指定形狀的直方圖,所謂指定形狀的直方圖形狀,其實就是一個指定的概率密度函式。
假設r和z分別表示輸入影象和輸出影象的灰度級,是輸入影象的概率密度函式,是我們希望輸出影象所具有的指定概率密度函式。
令:
可以看出,這就是直方圖均衡中的變換函式。知道,就能得到T(r)。
定義隨機變數z:
同樣,知道,就能得到G(z),而就是我們指定的概率密度函式。
可得:
上式就是我們要求的直方圖匹配的灰度變換函式。
對於離散形式,類似的我們令:
其中,規定的直方圖的第i個值,是規定的直方圖對應的影象的第q級灰度值(=q),利用反變換找到期望的:
實踐中,並不需要反變換。因為我們處理的灰度級是整數(如8位元影象的灰度級是從0到255),我們常用下面的直方圖規定化過程:
- 計算給定影象的及其直方圖均衡變換,把四捨五入為範圍[0,L-1]內的整數;
- 對q=0,1,2,...,L-1計算,其中規定的直方圖的值,把G四捨五入為範圍[0,L-1]內的整數,將G存在一個表中;
- 對每一個,k=0,1,2,...,L-1,從步驟2中儲存的G值表中尋找使最接近。例如表中第64個最接近,則根據的定義,此時q=63,也就是=63。當滿足給定的值多於一個時,按慣例選擇最小的值。
參考資料:岡薩雷斯《數字影象處理》