一、灰階直方圖 Histogram
既然要做Histogram Equalization 那麼最基本的,首先要了解什麼叫作 Histogram 吧!
其實如果你有學過一點統計的東西,或者常在做圖表的人"Histogram"一詞應該是不太陌生才對,中文叫作 直方圖 ,使用直方圖的好處就是可以讓人一眼看出統計的結果。 而在影像上,我們會應用於統計一張圖片裡面各灰階值出現的頻率。e.g.
從上圖就可以看出來,將一張圖統計成Histogram 後,我們很容易的就可以知道這張影像的灰階值分佈。
於似乎就能很輕易的觀察這張影像整體偏暗或偏亮(即分佈靠左或靠右),而再對它進行調整,常見的修圖軟體如Photoshop(PS) 一般也都會提供像這樣的Histogram 資訊給你看,方便你修照片。 二、均衡化 Equalization
在了解了什麼是Histogram 後,那我們再來聊聊什麼是Histogram Equalization。
在Histogram 的分佈中我們可以觀察到,如果 Histogram 分佈的峰值 靠近左側(靠近0 ),則代表這張影像偏暗;如果 Histogram 分佈的峰值 靠近右側(靠近255 ),則代表這張影像偏亮;如果 Histogram 分佈的峰值 非常集中在中間,則明暗的對比就不太明顯。講到這裡你大概也可以想像,Histogram 最理想分佈狀況就是平均分佈,而這就是我們接下來要介紹的 Equalization。
上圖的 Transition function ( T ) 利用的是:累積分佈函數(Cumulative Distribution Function , CDF)
而所謂的 CDF 其實就是 機率密度函數(PDF) 的積分。 在數位(Digital)影像中(離散),積分就是相加,所以我們可以整理出實作步驟如下:
下圖是從聖經裡面抄出來的簡單範例,它 Source Image 是一張 64*64 Intensity 3-bit 的Digital Image。
雖然用CDF 的方法在數學上的的確確是可以把任意的f(x)分佈 Transition 成一條水平線的樣子,但礙於Digital 的本質(離散且有限) 的關係,所以在實作上最終的結果並不會像理論那樣使得每個灰階值出現的機率都相同。
不過在應用上這樣的結果也算足夠了! 最後展示一張 512*512 Gray Scale Lena , 在做完 Histogram Equalization 的 Histogram Distributed:
邊的結果就是你在封面看到的那張影像,上圖是它們的 Histogram 分佈。
從上圖可以看到,在做完 Histogram Equalization 之後,原本集中在一個區段的灰階值的確更平均的被分佈到0-255 之間了,也因為在裡面包含了4捨5入的動作,可以看到某一些level 值是沒有被分配到的,然後在Transition後整體的曲線形狀仍與 Source Histogram 的分佈情形相似。 另外這是在聖經上會看到的範例,不過我在網路上找到的圖檔蠻小的(275*183)。 也順手把它丟進程式跑個結果給大家看一下:
【程式碼下載】
4 評論
Ning
10/10/2020 22:27:17
請問聖經是指哪一本書?
回覆
Jason Chen
10/11/2020 00:33:48
Hi Ning,
回覆
Silly
10/24/2020 23:54:03
請寄程式碼給我,謝謝。上述連結好像有病毒,我按了一下,反應很奇怪,希望沒中毒。
回覆
Jason Chen
10/25/2020 13:50:43
Hi Silly,
回覆
發表回覆。 |
Jason Chen人不光是生來就擁有一切,而是靠他從學習中得到的一切來造就自己。- 歌德 文章分類
全部
封存檔
九月 2023
|