【數字圖像處理】直方圖均衡化

直方圖

像這樣形狀的數據統計圖就叫作直方圖。

不嚴謹的來講,簇狀柱狀圖也能夠當作直方圖,咱們以後不進行區別。函數

灰度直方圖


橫軸爲灰度值,縱軸爲灰度值在圖中的頻數。
e.g. 以下圖

設灰度級爲2,最大灰度值爲1
n(0)=13
n(1)=7
spa

歸一化

即令縱軸爲頻率,橫軸上將最大灰度值映射到1.
blog

均衡化

目的:讓各個灰度值的頻率大體相同(除了0),也就是所謂的分佈均勻。


這個過程,咱們須要求出變換後各個灰度值所對應的新頻數。
方法:把灰度相近的值放到一塊兒,讓矮的「長條」變高。

雖然有一些灰度值被咱們丟棄了,可是留下的灰度值看起來更平坦了。須要注意的是,咱們的轉移不該該改變灰度的順序,原來的灰度值爲0的「長條」不能夠越過灰度值爲1的長條到灰度值爲2的上面去。

理想狀況:咱們能把直方圖徹底平坦化,也就是變換後的各灰度值頻率徹底一致。

歸一化後,根據\(\int^1_0p(r)=1\)可得\(p(r)=1\)
設變換前的灰度r轉移到灰度爲s的「長條」上了。

咱們設這個變換爲\(s=T(r)\),顯然,只要找到這個變換的具體表達式,咱們就能實現均衡化了。
\(0≤r,s≤1\)
分佈函數:\(F_s(s)=∫_{-∞}^sp_s(s)ds\)
咱們認爲理想狀況下,分佈函數在改變先後不變:\(F_r(r) =∫_{-∞}^rp_r (r)dr=∫_{-∞}^sp_s(s)ds\)
兩邊對s求導得:\(p_s(s)=\frac{d[\int^r_{-\infty}p_r(r)dr]}{dr}\cdot\frac{dr}{ds}=p_r\frac{dr}{ds}\)
假設:\(r=T^{-1}(s) p_s(s)=p_r\frac{d}{ds}\big(T^{-1}(s)\big)\)
\(p_s(s)=1\)代入得:\(ds=p_rdr\)
兩邊積分:\(s=\int_0^rp_rdr=T(r)=\sum_0^rp_i\)
這樣咱們就求出了\(T(r)\)圖片

例子

64*64的圖片,灰度級爲8。table

r0 r1 r2 r3 r4 r5 r6 r7
n 790 1023 850 656 329 245 122 81
p 0.19 0.25 0.21 0.16 0.08 0.06 0.03 0.02

求出ri變換後對應的歸一化灰度值(用上面求出的\(s=\int_0^rp_rdr=T(r)=\sum_0^rp_i\))。class

s 0.19 0.44 0.65 0.81 0.89 0.95 0.98 1.00
歸一化的逆過程,求出實際的灰度值。
Ts 1.33 3.08 4.55 5.67 6.23 6.65 6.86 7.00
四捨五入求整⌊7s+0.5⌋。
si 1 3 5 6 6 7 7 7
把灰度值相同的頻數與頻率各自相加。
790 1023 850 985 448
0.19 0.25 0.21 0.24 0.11
si s0 s1 s2 s3 s4 s5 s6 s7
n 0 790 0 1023 0 850 985 448
p 0 0.19 0 0.25 0 0.21 0.24 0.11
能夠看出來,雖然不是徹底理想,可是比變換前,直方圖更平坦了。 ![](https://img2020.cnblogs.com/blog/1306351/202003/1306351-20200304213256877-1374158813.png) ![](https://img2020.cnblogs.com/blog/1306351/202003/1306351-20200304213301073-151017965.png)
相關文章
相關標籤/搜索