图像处理理论(一)——直方图、二值化、滤波基础
http://antkillerfarm.github.io/
對(duì)比度和亮度
g(i,j)=a×f(i,j)+b
上式中f(i,j)和g(i,j)表示位于第i行,第j列的像素。上述線性變換中,a表示對(duì)比度,b表示亮度。
鄰域
???A0A3A5A1AA6A2A4A7???
A0~A7被稱作像素A的1度8-鄰域(即U(A,1)),相應(yīng)的上下左右的四個(gè)像素A1、A3、A4、A6被稱作像素A的1度4-鄰域。下文如無(wú)特別指出,鄰域均為8-鄰域。
定義U+(A,N)=A?i=1NU(A,i)。
U(A,2) 的定義如下:
如果B∈U(A,1)∧C∈U(B,1)∧C?U+(A,1),那么C∈U(A,2)。
類似的U(A,N)的定義為:
如果B∈U(A,N?1)∧C∈U(B,1)∧C?U+(A,N?1),那么C∈U(A,N)。
這里的N被稱為度數(shù),也就是兩點(diǎn)間的距離,即L(A,C)=N。
相關(guān)算子
相關(guān)(Correlation)算子
g=f?h
的定義為:
g(i,j)=∑k,lf(i+k,j+l)h(k,l)
其中,h稱為相關(guān)核(Kernel),即濾波器的加權(quán)系數(shù)矩陣,有的書上也稱作“模板”。相關(guān)核有個(gè)叫做錨點(diǎn)(anchor)的屬性,也就是被濾波的那個(gè)點(diǎn)在核中的位置。以3*3的h矩陣為例,如果錨點(diǎn)在矩陣中央的話,則i?1≤k≤i+1,j?1≤l≤j+1。如果錨點(diǎn)在左上角的話,則i≤k≤i+2,j≤l≤j+2。
所有的點(diǎn)(k,l)組成的集合,叫做核空間。一般也簡(jiǎn)單記作Xk,l。這里的X可以是累加、求均值、求最大值、求最小值等集合運(yùn)算符。
此外,h矩陣還有是否歸一化的屬性。這里將計(jì)算矩陣中所有元素之和的操作,記作SUM(h).則當(dāng)SUM(h)=1時(shí),h為歸一化核。hSUM(h),稱作核的歸一化。
從相關(guān)算子的定義可以看出,它是向量?jī)?nèi)積運(yùn)算的擴(kuò)展。我們一般使用a?b或者<a,b><script type="math/tex" id="MathJax-Element-520"></script>表示向量的內(nèi)積運(yùn)算。即:
<a,b>=a0b0+a1b1+?+anbn <script type="math/tex; mode=display" id="MathJax-Element-31">=a_0b_0+a_1b_1+\dots+a_nb_n</script>
卷積算子
卷積(Convolution)算子
g=f?h
的定義為:
g(i,j)=∑k,lf(i?k,j?l)h(k,l)
顯然
f?h=f?rot180(h)
其中,rotN表示將矩陣元素繞中心逆時(shí)針旋轉(zhuǎn)N度,顯然這里的N只有為90的倍數(shù),才是有意義的。
灰度化
以RGB格式的彩圖為例,通常灰度化采用的方法主要有:
方法1:Gray=(R+G+B)/3
方法2:Gray=max(R,G,B)
方法3:Gray=0.299R+0.587G+0.114B(這種參數(shù)考慮到了人眼的生理特點(diǎn))
灰度直方圖
灰度直方圖是灰度級(jí)的函數(shù),描述圖像中該灰度級(jí)的像素個(gè)數(shù)(或該灰度級(jí)像素出現(xiàn)的頻率):其橫坐標(biāo)是灰度級(jí),縱坐標(biāo)表示圖像中該灰度級(jí)出現(xiàn)的個(gè)數(shù)(頻率)。
一維直方圖的結(jié)構(gòu)表示為:
N(P)=[n1,n2,…,nL?1]
N=∑i=0L?1ni,pi=niN
其中,L為灰度級(jí)的個(gè)數(shù),ni為每個(gè)灰度的像素個(gè)數(shù),其出現(xiàn)概率為pi。
同理,可將灰度直方圖的概念推廣到單獨(dú)的顏色通道,即所謂的顏色直方圖。如下圖所示:
直方圖均衡化
直方圖均衡化是通過(guò)灰度變換將一幅圖像轉(zhuǎn)換為另一幅具有均衡直方圖,即在每個(gè)灰度級(jí)上都具有盡可能相同的象素點(diǎn)數(shù)(即均勻分布)的過(guò)程。
上圖展示的是,將一個(gè)高斯分布的直方圖轉(zhuǎn)換為均勻分布的直方圖的過(guò)程,其中累積分布函數(shù)起到了橋梁作用。事實(shí)上,任意分布的函數(shù)都可以通過(guò)這樣的方式轉(zhuǎn)換為另一種分布函數(shù)。而直方圖均衡化,就是將其他分布函數(shù)的直方圖轉(zhuǎn)換成均勻分布的直方圖的過(guò)程。
具體計(jì)算方法如下:
1.建立圖像灰度直方圖。
2.計(jì)算累積分布函數(shù)P(k)。
P(k)=∑ki=0pi
3.生成新的灰度和舊的灰度的對(duì)應(yīng)關(guān)系數(shù)組。
T(i)=P(i)?L
其中T(i)表示對(duì)應(yīng)原來(lái)的灰度i的新灰度值。
4.用新的灰度值替換舊的灰度值。
直方圖均衡化的效果如下所示:
原圖
效果圖
直方圖均衡化主要處理那些曝光不夠或者曝光過(guò)度的圖片,可以顯著提高這些圖片的對(duì)比度。但其本質(zhì)是擴(kuò)大了量化間隔,而量化級(jí)別反而減少了,因此,原來(lái)灰度不同的象素經(jīng)處理后可能變的相同,形成了一片的相同灰度的區(qū)域,各區(qū)域之間有明顯的邊界,從而出現(xiàn)了偽輪廓。這種效應(yīng)也稱作“灰度吞噬效應(yīng)”。
彩色直方圖的均衡化有以下幾種方法:
1.統(tǒng)計(jì)所有RGB顏色通道的直方圖的數(shù)據(jù)并做均衡化運(yùn)算,然后根據(jù)均衡化所得的映射表分別替換R、G、B通道顏色值。
2.分別統(tǒng)計(jì)R、G、B顏色通道的直方圖的數(shù)據(jù)并做均衡化運(yùn)算,然后根據(jù)R、G、B的映射表分別替換R、G、B通道顏色值。
3.用亮度公式或求RGB的平均值的方式計(jì)算亮度通道,然后統(tǒng)計(jì)亮度通道的直方圖的數(shù)據(jù)并做均衡化運(yùn)算,然后根據(jù)映射表分別替換R、G、B通道顏色值。
二值化
二值圖也就是黑白圖。將灰度圖轉(zhuǎn)換成黑白圖的過(guò)程,就是二值化。二值化的一般算法是:
g={0,1,f≤tf>t
其中
t被稱為閥值。閥值的確定方法有下面幾種。Otsu法(大津法或最大類間方差法)
該算法是一種動(dòng)態(tài)閾值分割算法。它的主要思想是按照灰度特性將圖像劃分為背景和目標(biāo)2部分(這里我們將f≤t的部分稱為背景,其他部分稱為目標(biāo)。),選取門限值,使得背景和目標(biāo)之間的方差最大。
注:Nobuyuki Otsu,東京大學(xué)博士,先后在筑波大學(xué)和東京大學(xué)擔(dān)任教授。
其步驟如下:
1.建立圖像灰度直方圖。
2.計(jì)算背景和目標(biāo)的出現(xiàn)概率。
pA=∑i=0tpi,pB=∑i=t+1L?1pi=1?pA
其中,A和B分別表示背景部分和目標(biāo)部分。
3.計(jì)算A和B兩個(gè)區(qū)域的類間方差。
ωA=∑ti=0ipipA,ωB=∑L?1i=t+1ipipB(公式1)
公式1分別計(jì)算A和B區(qū)域的平均灰度值;
ω0=pAωA+pBωB=∑i=0L?1ipi(公式2)
公式2計(jì)算灰度圖像全局的灰度平均值;
σ2=pA(ωA?ω0)2+pB(ωB?ω0)2(公式3)
公式3計(jì)算A、B兩個(gè)區(qū)域的類間方差。
4.針對(duì)每一個(gè)灰度值,計(jì)算類間方差。選擇方差最大的灰度值,作為閥值t。
一維交叉熵值法
對(duì)于兩個(gè)分布R和Q,定義其信息交叉熵D如下:
R={r1,r2,…,rn},Q={q1,q2,…,qn}
D(Q,R)=∑k=1nqklog2qkrk
注:嚴(yán)格來(lái)說(shuō),這里定義的是相對(duì)熵(relative entropy),又稱為KL散度(Kullback-Leibler divergence)或KL距離,是兩個(gè)隨機(jī)分布間距離的度量。從公式可以看出,KL距離和經(jīng)典概率論中的二項(xiàng)分布有很密切的關(guān)系。
交叉熵的嚴(yán)格定義參見:
https://en.wikipedia.org/wiki/Cross_entropy
http://www.voidcn.com/blog/rtygbwwwerr/article/p-5047519.html
二值化過(guò)程實(shí)際上就是從分布R={r1,r2,…,rL}到分布Q={qA,qB}的過(guò)程。
因此
D(t)=∑i=0tipilog2(piωA)+∑i=t+1L?1ipilog2(piωB)
其中,使得D最小的t即為最小交叉熵意義下的最優(yōu)閾值。
二維Otsu法
Otsu法對(duì)噪音和目標(biāo)大小十分敏感,它僅對(duì)類間方差為單峰的圖像產(chǎn)生較好的分割效果。
當(dāng)目標(biāo)與背景的大小比例懸殊時(shí),類間方差準(zhǔn)則函數(shù)可能呈現(xiàn)雙峰或多峰,此時(shí)效果不好,但是Otsu法是用時(shí)最少的。
二維Otsu法,在考慮像素點(diǎn)灰度級(jí)p的基礎(chǔ)上,增加了對(duì)像素點(diǎn)鄰域平均像素值s的考慮。
如果p比s大很多,說(shuō)明像素的灰度值遠(yuǎn)遠(yuǎn)大于其臨域的灰度均值,故而該點(diǎn)很可能是噪聲點(diǎn),反之如果p比s小很多,即該點(diǎn)的像素值比其臨域均值小很多,則說(shuō)明是一個(gè)邊緣點(diǎn)。這兩種點(diǎn)在后續(xù)的計(jì)算中,都要去除掉。
二維Otsu法的推導(dǎo)過(guò)程極為復(fù)雜,可參見:
http://blog.csdn.net/likezhaobin/article/details/6915755
方框?yàn)V波(Box Filter)
g=f?h,h=α?????11?111?111?1????11?1?????,α={1SUM(h),1,normalize=truenormalize=false
當(dāng)normalize=true時(shí)的方框?yàn)V波,也被稱為均值濾波(Mean filter)。
高斯濾波(Gauss filter)
高斯平滑濾波器對(duì)于抑制服從正態(tài)分布的噪聲非常有效。
正態(tài)分布的概率密度函數(shù)為:
f(x)=12π??√σe?(x?μ)22σ2
其標(biāo)準(zhǔn)化后的概率密度函數(shù)為:
f(x)=12π??√e?x22
標(biāo)準(zhǔn)二維正態(tài)分布的概率密度函數(shù)為:
f(x,y)=12πe?x2+y22=f(x)f(y)
這個(gè)公式表明標(biāo)準(zhǔn)二維正態(tài)分布,可以分解為兩個(gè)正交方向上的標(biāo)準(zhǔn)一維正態(tài)分布。也就是說(shuō)標(biāo)準(zhǔn)二維正態(tài)分布不僅是中心對(duì)稱,也是軸對(duì)稱的。
正態(tài)分布的性質(zhì):
1.兩個(gè)正態(tài)分布密度的乘積、卷積,還是正態(tài)分布。
2.正態(tài)分布的傅立葉變換、共軛分布,還是正態(tài)分布。
3.正態(tài)分布和其它具有相同均值、方差的概率分布相比,具有最大熵。
4.二項(xiàng)分布、泊松分布、χ2分布、t分布等在樣本增大的情況下,都趨向于正態(tài)分布。
正態(tài)分布的相關(guān)內(nèi)容可參考:
正態(tài)分布的前世今生
標(biāo)準(zhǔn)正態(tài)分布的最佳逼近符合楊輝三角,比如一個(gè)具有5個(gè)點(diǎn)的一維標(biāo)準(zhǔn)正態(tài)分布的最佳逼近為:
[14641]
同理,最常用的3*3高斯濾波h矩陣為:
???121???×[121]=???121242121???
其歸一化形式為:
???0.06250.1250.06250.1250.250.1250.06250.1250.0625???
從效果來(lái)說(shuō),高斯濾波可產(chǎn)生類似毛玻璃的效果。
中值濾波(Median filter)
中值濾波是一種典型的非線性濾波技術(shù),對(duì)于斑點(diǎn)噪聲(speckle noise)和椒鹽噪聲(salt-and-pepper noise)來(lái)說(shuō)尤其有用,對(duì)濾除脈沖干擾及圖像掃描噪聲非常有效,也常用于保護(hù)邊緣信息。
以3*3的濾波窗口為例,計(jì)算以點(diǎn)[i,j]為中心的像素中值步驟如下:
1)對(duì)U+(A,1)的9個(gè)像素點(diǎn)a0~a8,按強(qiáng)度值大小排列像素點(diǎn),得到有序數(shù)組A0~A8
2)選擇排序像素集的中間值A4作為點(diǎn)[i,j]的新值。
從效果來(lái)說(shuō),中值濾波可產(chǎn)生類似油彩畫的效果。
上面這些濾波的效果如圖所示:
總結(jié)
以上是生活随笔為你收集整理的图像处理理论(一)——直方图、二值化、滤波基础的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: UPNP(一)
- 下一篇: 图像处理理论(二)——形态学、边缘检测、