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