【圖像處理】直方圖均衡與匹配


灰度直方圖

灰度直方圖: 圖像灰度直方圖描述的是圖像各個(gè)灰度級的統(tǒng)計(jì)特性,橫坐標(biāo)表示各級灰度值,縱坐標(biāo)表示各級灰度值在圖像中對應(yīng)的像素個(gè)數(shù)。

比如灰度級范圍為[0,L-1]的數(shù)字圖像的灰度直方圖可以如下離散函數(shù)來表示:

h(r_{k})=n_{k}

其中,rk表示第k級灰度值,nk表示圖像中灰度為rk的像素個(gè)數(shù),k=0,1,...,L-1。


歸一化灰度直方圖

歸一化灰度直方圖:橫坐標(biāo)表示各級灰度值,縱坐標(biāo)表示各級灰度值在圖像中出現(xiàn)的概率統(tǒng)計(jì)。歸一化直方圖的縱坐標(biāo)分量之和應(yīng)等于1。

p(r_{k})=n_{k}/MN

其中,rk表示第k級灰度值,nk表示圖像中灰度為rk的像素個(gè)數(shù),M與N表示圖像的行和列,p(rk)表示灰度級rk在圖像中出現(xiàn)的概率值,k=0,1,...,L-1。


累積直方圖

累計(jì)直方圖:代表圖像組成成分在灰度級的累計(jì)概率分布情況,每一個(gè)概率值代表小于等于此灰度值的概率。

c(r_{k})=\sum_{i=0}^{k}n_{i}/MN=\sum_{i=0}^{k}p(r_{i})

其中,rk表示第k級灰度值,nk表示圖像中灰度為rk的像素個(gè)數(shù),M與N表示圖像的行和列,p(rk)表示灰度級rk在圖像中出現(xiàn)的概率值,c(rk)表示累積值,k=0,1,...,L-1。

從上圖可以看出,在暗圖像中,灰度直方圖的分量集中在灰度級的低端;在亮圖像中,灰度直方圖的分量集中在灰度級的高端;低對比圖圖像具有較窄的灰度直方圖;高對比度圖像中灰度直方圖的分量覆蓋很寬的灰度級范圍,且像素的分布沒有太不均勻,只有少量垂線比其它高許多。


直方圖均衡

直方圖均衡:是將當(dāng)前的灰度分布通過一個(gè)變換函數(shù),變換為范圍更寬、灰度分布更均勻的圖像,也就是將原圖像的直方圖修改為在整個(gè)灰度區(qū)間內(nèi)大致均勻分布,因此擴(kuò)大了圖像的動態(tài)范圍,增強(qiáng)了圖像的對比度。

直方圖均衡化的步驟:

  • 計(jì)算原圖像的灰度直方圖p(rk);
  • 計(jì)算原圖像的累積直方圖c(rk);
  • 計(jì)算圖像新的像素值,如下

s_{k}=T(r_{k})=(L-1)c(r_{k})=(L-1)\sum_{i=0}^{k}p(r_{i})=\frac{(L-1)}{MN}\sum_{i=0}^{k}n_{i}

其中,rk表示第k級灰度值,nk表示圖像中灰度為rk的像素個(gè)數(shù),M與N表示圖像的行和列,p(rk)表示灰度級rk在圖像中出現(xiàn)的概率值,c(rk)表示累積值,k=0,1,...,L-1,sk表示輸出圖像的灰度級,(L-1)表示圖像的最大灰度級比如255。

示例

已知一幅大小為64×64像素的3位圖像的灰度分布以及歸一化灰度直方圖值如下表所示,求均衡后的歸一化灰度直方圖?

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

由于該圖像是3位圖像,所以L=23=8,直接運(yùn)用直方圖均衡化公式,可得:
s_{0}=T(r_{0})=(8-1)\sum_{i=0}^{0}p(r_{i})=7p(r_{0})=1.33
s_{1}=T(r_{1})=(8-1)\sum_{i=0}^{1}p(r_{i})=7[p(r_{0})+p(r_{1})]=3.08
s_{2}=T(r_{2})=(8-1)\sum_{i=0}^{2}p(r_{i})=7[p(r_{0})+p(r_{1})+p(r_{2})]=4.55
s_{3}=T(r_{3})=(8-1)\sum_{i=0}^{3}p(r_{i})=7[p(r_{0})+p(r_{1})+p(r_{2})+p(r_{3})]=5.67
s_{4}=T(r_{4})=(8-1)\sum_{i=0}^{4}p(r_{i})=7[p(r_{0})+p(r_{1})+p(r_{2})+p(r_{3})+p(r_{4})]=6.23
s_{5}=T(r_{5})=(8-1)\sum_{i=0}^{5}p(r_{i})=7[p(r_{0})+p(r_{1})+p(r_{2})+p(r_{3})+p(r_{4})+p(r_{5})]=6.65
s_{6}=T(r_{6})=(8-1)\sum_{i=0}^{6}p(r_{i})=7[p(r_{0})+p(r_{1})+p(r_{2})+p(r_{3})+p(r_{4})+p(r_{5})+p(r_{6})]=6.86
s_{7}=T(r_{7})=(8-1)\sum_{i=0}^{7}p(r_{i})=7[p(r_{0})+p(r_{1})+p(r_{2})+p(r_{3})+p(r_{4})+p(r_{5})+7p(r_{6})+7p(r_{7})]=7.00
將所求得的s值近似為相近的整數(shù),即:
s_{0}=1.33≈1
s_{1}=3.08≈3
s_{2}=4.55≈5
s_{3}=5.67≈6
s_{4}=6.23≈6
s_{5}=6.65≈7
s_{6}=6.86≈7
s_{7}=7.00≈7
這些整數(shù)就是均衡后的直方圖的值,可以看到,通過直方圖均衡操作,原先的8個(gè)灰度級變?yōu)榱?個(gè)灰度級,即:

  • 原先的第0灰度級被映射為了第1灰度級,再由上表可知,在均衡后的圖像中有790個(gè)像素具有該值;
  • 原先的第1灰度級被映射為了第3灰度級,在均衡后的圖像中有1023個(gè)像素具有該值;
  • 原先的第2灰度級被映射為了第5灰度級,在均衡后的圖像中有850個(gè)像素具有該值;
  • 原先的第3、4灰度級被映射為了第6灰度級,在均衡后的圖像中有(656+329)=985個(gè)像素具有該值;
  • 原先的第5、6、7灰度級被映射為了第7灰度級,在均衡后的圖像中有(245+122+81)=448個(gè)像素具有該值.。

根據(jù)歸一化灰度直方圖的計(jì)算公式,使用MN=64×64=4096去除這些數(shù)即可得到均衡后圖像的歸一化灰度直方圖,將其繪制出來如下(圖3)所示。

圖1.原始圖像的歸一化灰度直方圖;圖2.直方圖均衡化變換函數(shù);圖3.均衡后圖像的歸一化灰度直方圖

直方圖匹配

直方圖匹配:對于某些應(yīng)用,采用直方圖均衡的基本增強(qiáng)并不是最好的方法,特別地,有時(shí)我們希望處理后的圖像具有規(guī)定的直方圖形狀,這種用于產(chǎn)生處理后有特殊直方圖的方法稱為直方圖匹配或直方圖規(guī)定化。

直方圖匹配的步驟:

  • 對原始圖像的灰度直方圖進(jìn)行均衡化,得到一個(gè)變換函數(shù)sk=T(rk),其中sk是均衡化后的灰度級,rk是原始灰度級。
  • 對規(guī)定的直方圖進(jìn)行均衡化,得到一個(gè)變換函數(shù)vq=G(zq),其中vq是均衡化后的灰度級,zq是規(guī)定化的灰度級。
  • 上面都是對同一圖像的均衡化,其結(jié)果應(yīng)該是相等的。

s_{k}=v_{q}

由于:

v_{q}=G(z_{q})

通過反變換可變形得到下式:

z_{q}=G^{-1}(v_{q})=G^{-1}(s_{k})=G^{-1}(T(r_{k}))

像這樣,通過均衡化作為中間結(jié)果,將得到原始灰度級rk和規(guī)定化后灰度級zq之間的映射關(guān)系。

但是在實(shí)踐中,我們并不需要計(jì)算G的反變換,因?yàn)槲覀兲幚淼幕叶燃壥钦麛?shù),比如8位圖像的灰度級是0-255,利用vq=G(zq)式計(jì)算q=0,1,2,...,L-1時(shí)的所有值是一件很簡單的事情。實(shí)際計(jì)算步驟如下:

  • 對原始圖像的灰度直方圖進(jìn)行均衡化,將sk四舍五入為[0,L-1]內(nèi)的整數(shù)。
  • 對規(guī)定的直方圖進(jìn)行均衡化,將vq的值四舍五入為[0,L-1]內(nèi)的整數(shù)。
  • 對于每一個(gè)sk值,都尋找相應(yīng)的vq值,使得vq最接近sk,進(jìn)而可得sk到zq的映射。當(dāng)滿足sk的zq值多于一個(gè)時(shí),我們選擇最小的zq值進(jìn)行映射。
  • 根據(jù)得到的sk與zq的映射關(guān)系,即可將原始直方圖均衡后的灰度級映射為規(guī)定化后的灰度級,形成直方圖規(guī)定化后的圖像。

示例

已知一幅大小為64×64像素的3位圖像的灰度分布、歸一化灰度直方圖值如表1所示,規(guī)定的歸一化灰度直方圖值如表2所示,求規(guī)定后的歸一化灰度直方圖?

表1.原始圖像的灰度分布、歸一化灰度直方圖值

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

表2.規(guī)定的歸一化灰度直方圖值

zq p(zq)
z0 0.00
z1 0.00
z2 0.00
z3 0.15
z4 0.20
z5 0.30
z6 0.30
z7 0.15

首先對原始圖像的灰度直方圖進(jìn)行均衡化,再將sk四舍五入為[0,L-1]內(nèi)的整數(shù),可得:
s_{0}=T(r_{0})=(8-1)\sum_{i=0}^{0}p(r_{i})=7p(r_{0})=1.33≈1
s_{1}=T(r_{1})=(8-1)\sum_{i=0}^{1}p(r_{i})=7[p(r_{0})+p(r_{1})]=3.08≈3
s_{2}=T(r_{2})=(8-1)\sum_{i=0}^{2}p(r_{i})=7[p(r_{0})+p(r_{1})+p(r_{2})]=4.55≈5
s_{3}=T(r_{3})=(8-1)\sum_{i=0}^{3}p(r_{i})=7[p(r_{0})+p(r_{1})+p(r_{2})+p(r_{3})]=5.67≈6
s_{4}=T(r_{4})=(8-1)\sum_{i=0}^{4}p(r_{i})=7[p(r_{0})+p(r_{1})+p(r_{2})+p(r_{3})+p(r_{4})]=6.23≈6
s_{5}=T(r_{5})=(8-1)\sum_{i=0}^{5}p(r_{i})=7[p(r_{0})+p(r_{1})+p(r_{2})+p(r_{3})+p(r_{4})+p(r_{5})]=6.65≈7
s_{6}=T(r_{6})=(8-1)\sum_{i=0}^{6}p(r_{i})=7[p(r_{0})+p(r_{1})+p(r_{2})+p(r_{3})+p(r_{4})+p(r_{5})+p(r_{6})]=6.86≈7
s_{7}=T(r_{7})=(8-1)\sum_{i=0}^{7}p(r_{i})=7[p(r_{0})+p(r_{1})+p(r_{2})+p(r_{3})+p(r_{4})+p(r_{5})+7p(r_{6})+7p(r_{7})]=7.00≈7

對規(guī)定的直方圖進(jìn)行均衡化,并將vq的值四舍五入為[0,L-1]內(nèi)的整數(shù),可得:
v_{0}=G(r_{0})=(8-1)\sum_{i=0}^{0}p(z_{i})=7p(z_{0})=0.00≈0
v_{1}=G(r_{1})=(8-1)\sum_{i=0}^{1}p(z_{i})=7[p(z_{0})+p(z_{1})]=0.00≈0
v_{2}=G(r_{2})=(8-1)\sum_{i=0}^{2}p(z_{i})=7[p(z_{0})+p(z_{1})+p(z_{2})]=0.00≈0
v_{3}=G(r_{3})=(8-1)\sum_{i=0}^{3}p(z_{i})=7[p(z_{0})+p(z_{1})+p(z_{2})+p(z_{3})]=1.05≈1
v_{4}=G(r_{4})=(8-1)\sum_{i=0}^{4}p(z_{i})=7[p(z_{0})+p(z_{1})+p(z_{2})+p(z_{3})+p(z_{4})]=2.45≈2
v_{5}=G(r_{5})=(8-1)\sum_{i=0}^{5}p(z_{i})=7[p(z_{0})+p(z_{1})+p(z_{2})+p(z_{3})+p(z_{4})+p(z_{5})]=4.55≈5
v_{6}=G(r_{6})=(8-1)\sum_{i=0}^{6}p(z_{i})=7[p(z_{0})+p(z_{1})+p(z_{2})+p(z_{3})+p(z_{4})+p(z_{5})+p(z_{6})]=5.95≈6
v_{7}=G(r_{7})=(8-1)\sum_{i=0}^{7}p(z_{i})=7[p(z_{0})+p(z_{1})+p(z_{2})+p(z_{3})+p(z_{4})+p(z_{5})+7p(z_{6})+7p(z_{7})]=7.00≈7

將如上計(jì)算結(jié)果統(tǒng)計(jì)到表格中:

zq vq=G(zq)
z0 0
z1 0
z2 0
z3 1
z4 2
z5 5
z6 6
z7 7

對于每一個(gè)sk值,都尋找相應(yīng)的vq值,使得vq最接近sk,根據(jù)vq與zq的關(guān)系,進(jìn)而可得sk到zq的映射,如下所示:

sk vq=G(zq) zq
1 1 3
3 2 4
5 5 5
6 6 6
7 7 7

將sk映射為zq,實(shí)際上就是將原始直方圖均衡后的灰度級映射為規(guī)定化后的灰度級,詳細(xì)過程如下:

  • 原始直方圖均衡后的第1灰度級被映射為了第3灰度級,在直方圖均衡后的圖像中有790個(gè)像素具有該值;
  • 原始直方圖均衡后的第3灰度級被映射為了第4灰度級,在直方圖均衡后的圖像中有1023個(gè)像素具有該值;
  • 原始直方圖均衡后的第5灰度級被映射為了第5灰度級,在直方圖均衡后的圖像中有850個(gè)像素具有該值;
  • 原始直方圖均衡后的第6灰度級被映射為了第6灰度級,在直方圖均衡后的圖像中有(656+329)=985個(gè)像素具有該值;
  • 原始直方圖均衡后的第7灰度級被映射為了第7灰度級,在直方圖均衡后的圖像中有(245+122+81)=448個(gè)像素具有該值;

根據(jù)歸一化灰度直方圖的計(jì)算公式,使用MN=64×64=4096去除這些數(shù)即可得到規(guī)定后圖像的歸一化灰度直方圖,將其繪制出來如下(圖d)所示。

圖a.原始圖像的歸一化灰度直方圖;圖b.規(guī)定的直方圖;圖c.直方圖規(guī)定化變換函數(shù);圖d.規(guī)定后圖像的歸一化灰度直方圖

從結(jié)果可以看出,如上(圖d)所示的最終結(jié)果并不完全與規(guī)定的直方圖匹配,但我們達(dá)到了將灰度明確地移向灰度級高端的目的。


直方圖均衡與直方圖匹配的比較

左圖.原始影像;中圖.直方圖均衡后的結(jié)果;右圖.直方圖匹配后的結(jié)果
左圖.原始影像的直方圖;中圖.直方圖均衡后圖像的直方圖;右圖.直方圖匹配后圖像的直方圖
  • 由于原始影像的直方圖中有大量像素灰度接近0,直接進(jìn)行直方圖均衡時(shí),其結(jié)果是把非常窄的暗像素區(qū)間映射到輸出圖像灰度級的高端。
  • 由于原始影像的直方圖中有大量像素灰度接近0,所以可以修改原始圖像的直方圖,使其不再有這一屬性。即采用直方圖匹配的方法來改善原始影像,人為規(guī)定一個(gè)直方圖,該直方圖保持了原有直方圖的基本形狀,但在圖像灰度暗區(qū)的灰度值有更平滑的過度。
  • 比較以上結(jié)果可以看出,對于該問題,直方圖匹配的效果比直方圖均衡要好。應(yīng)該注意,原始直方圖的細(xì)小改變會使圖像的外觀得到顯著改進(jìn)。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容