直方圖
像這樣形狀的數據統計圖就叫做直方圖。
不嚴謹的來說,簇狀柱狀圖也可以看成直方圖,我們之后不進行區別。
灰度直方圖
橫軸為灰度值,縱軸為灰度值在圖中的頻數。
e.g. 如下圖
設灰度級為2,最大灰度值為1
n(0)=13
n(1)=7
歸一化
即令縱軸為頻率,橫軸上將最大灰度值映射到1.
均衡化
目的:讓各個灰度值的頻率大致相同(除了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。
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\))。
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 |
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 |