正文 計算機視覺的圖像處理技術(3 / 3)

如果感興趣的物體具有比較一致的灰度值,並分布在一個具有另一個灰度值的均勻背景上,使用閾值方法效果就很好。如果物體同背景的差別在於某些性質而不是灰度值(如紋理等),那麼可以首先把那個性質轉化為灰度形式,然後利用灰度閾值化技術分割待處理的圖像。

通常有兩種技術可用來篩選優化閾值,一是自動選擇技術,二是人工選擇技術,在自動選擇技術中,閾值的選擇是以數學和統計學的方法為基礎,選擇過程沒有人的幹預。在人工選擇技術中,操作者用試湊的方法由眼睛觀察直方圖的分布,選擇一個分割效果較佳的灰度值作為閾值,由於人工選擇閾值方法簡單,在實際中有廣泛的應用。

1.全局閾值化

采用閾值確定邊界的最簡單做法,是在整個圖像中將灰度閾值設置為常數,如果背景的灰度值在整個圖像中可合理地看作為恒定,而且所有物體與背景都具有幾乎相同的對比度,那麼隻要選擇了正確的閾值,使用一個固定的全局閾值一般會有較好的效果。

2.自適應閾值

在許多的情況下,背景的灰度值並不是常數,物體和背景的對比度在圖像中也有變化。這時,一個在圖像中某一區域效果良好的閾值在其他區域卻可能效果很差。在這種情況下,把灰度閾值取成一個隨圖像中位置緩慢變化的函數值是適宜的。

3.最佳閾值的選擇

除非圖像中的物體有陡峭的邊沿,否則灰度閾值的取值對所抽取物體的邊界定位和整體的尺寸有很大影響,這意味著後續的尺寸(特別是麵積)測量對於灰度閾值的選擇很敏感。由於這個原因,我們需要一個最佳的或至少是具有一致性的方法確定閾值。

(1)直方圖技術一幅含有一個與背景明顯對比的物體的圖像具有包含雙峰的灰度直方圖,兩個尖峰對應於物體內部和外部較多數目的點,兩峰間的穀對應於物體邊緣附近相對較少數目的點。在類似這樣的情況下,通常使用直方圖來確定灰度閾值的值。

利用灰度閾值T對物體麵積進行計算的定義為

A=∫∞TH(D)dD(2-15)

顯然,如果閾值對應於直方圖的穀,閾值從T增加到T+ΔT隻會引起麵積略微減少。因此把閾值設在直方圖的穀,可以把閾值選擇中的小偏差對麵積測量的影響降到最低。

如果圖像或包含物體圖像的區域麵積不大且有噪聲,那麼直方圖本身就會有噪聲。除了凹穀特別尖銳的情況外,噪聲會使穀的定位難以辨認,或至少是不同幅圖像得到的結果不穩定可靠。這個問題在一定程度上可以通過用卷積或曲線擬合過程對直方圖進行平滑加以克服。如果兩峰大小不一樣,那麼平滑化可能會導致最小值的位置發生移動。但是在平滑化程度適當的情況下,峰值還是容易定位並且也是相對穩定的。一種更可靠的方法是把閾值設在相對於兩峰的某個固定位置,如中間位置上,這兩個峰分別代表物體內部和外部點典型(出現最頻繁)的灰度值。一般情況下,對這些參數的估計比對最少出現的灰度值,即直方圖的穀的估計更可靠。

可以構造一個隻包含具有較大的梯度幅值的像素的直方圖,例如取最高的10%。這種方法排除了大量的內部和外部像素,而且可能會使直方圖的穀點更易檢測到。還可以用各灰度級像素的平均梯度值除直方圖來增強凹穀,或利用高梯度像素的灰度平均值來確定閾值。

拉普拉斯濾波是一個二維的二階導數算子。使用拉普拉斯濾波並隨之進行平滑,然後將閾值設在灰度值為0或略偏正,可以在二階導數的過零點處分割物體。這些過零點對應於物體邊緣上的拐點。由灰度一梯度組成的二維直方圖也可以用來確定分割準則。

(2)自動確定閾值方法Otsu是一種自動確定閾值方法。該方法的基礎是辨別分析,其特點是並不要求任何有關閾值的前期信息。下麵介紹這種方法的實施過程。首先計算圖像的直方圖,標準化後的灰度值直方圖可由式表示。

Pi=niN

Pi>0,∑255i=0Pi=1

式中i——灰度值

ni——灰度值為i的像素數

N=∑255i=0ni——像素總數

圖像的像素可以根據閾值“T”分成兩類,背景和目標,背景區的像素由具有0~T的像素組成,目標是指灰度值為T+1~255區域。

w0=Prob{x≤T}=w(T)

w1=Prob{x>T}=1-w(T)

μ0=∑Ti=0i·Prob{x≤T}=μ(T)w(T)

μ1=∑255i=T+1i·Prob{x>T}=μT-μ(T)1-w(T)

式中w(T)=∑Ti=0Pi——閾值以下像素直方圖的零階累加矩

μ(T)=∑Ti=0i·Pi——閾值以下像素直方圖的一階累加矩

μT=∑255i=0i·Pi——圖像總均值

背景和目標的方差可表示為

σ20=∑Ti=0(i-μ0)2Piw0(2-22)

σ21=∑255i=T+1(i-μ1)2Piw0(2-23)

σ2w、σ2B、σ2T分別為域內方差、域間方差、總方差,閾值“T”可根據下列不同的測量進行選擇

η=σ2Bσ2T,η1=σ2Bσ2w,η2=σ2Bσ2T(2-24)

式中σ2B=w0w1(μ1-μ0)2

σ2T=∑255i=0(1-μT)2Pi

σ2w=w0σ20+w1σ21

σ2w、σ2B是閾值“T”的函數,但σ2T與閾值“T”無關,σ2w由二階統計獲得,σ2B由一階統計獲得。因此,η是關於閾值“T”的最簡單測量,可作為選擇標準,來評估閾值的優劣,使η取最大值的最優閾值“Ts”可由式得到

Ts=max0≤T≤255{σ2B(T)}

式中σ2B(T)=μTw(T)-μ(T)2w(T)[1-w(T)]

閾值確定以後,即可對圖像進行分割處理。

(二)基於梯度的圖像分割方法

閾值分割法是利用閾值來實現分割,而邊界方法是利用邊界具有高梯度值的性質直接把邊界找出來。這裏介紹三種這樣的方法。

1.邊界跟蹤

假定我們從一個梯度幅值圖像著手進行處理,這個圖像是一幅與背景具有較大色度差的單一物體的圖像。因為圖像中梯度值最高的點必然在邊界上。

接著,搜索以邊界起始點為中心的3×3鄰域,找出具有最大灰度級的鄰域點作為第2個邊界點。如果有兩個鄰域點具有相同的最大灰度級,就任選一個。從這一點開始,我們啟動了一個在給定當前和前一個邊界點的條件下尋找下一個邊界點的迭代過程。在以當前邊界點為中心的3×3鄰域內,我們考察與前一個邊界點位置相對的鄰點和這個鄰點兩旁的兩個點。下一個邊界點就是上述三點中具有最高灰度級的那個點。如果所有三個或兩個相鄰邊界點具有同樣的最高灰度級。

在一個無噪聲的單調點狀物圖像中,這個算法將描畫出最大梯度邊界;但是,即使少量的噪聲也可能使跟蹤暫時或永遠偏離邊界。噪聲的影響可以通過跟蹤前對梯度圖像進行平滑的方法來降低。即使這樣,邊界跟蹤也不能保證產生閉合的邊界,並且算法也可能失控並走到圖像邊界外麵。

2.梯度圖像二值化

如果用適中的閾值對一幅梯度圖像進行二值化,那麼我們將發現物體和背景內部的點低於閾值,而大多數邊緣點高於它。Kirsch的分割法利用了這種現象。這種技術首先用一個中偏低的灰度閾值對梯度圖像進行二值化從而檢測出物體的分割法和背景,物體與背景被處於閾值之上的邊界點帶分開。隨著閾值逐漸提高,就引起物體和背景的同時增長,當物體和背景區域幾乎接觸而又不至於合並時,可用接觸點來定義邊界。這是分水嶺算法在梯度圖像中的應用。

雖然Kirsch方法比二值化的計算開銷大,但它可以產生最大梯度邊界。對包含多個物體的圖像來說,在初始二值化步驟中分割正確的情況下,才能保證該分割的正確。預先對梯度圖像進行平滑會產生較平滑的邊界。

3.拉普拉斯邊緣檢測

拉普拉斯算子是對二維函數進行運算的二階導數標量算子。

Δ2f(x,y)=x2f(x,y)+y2f(x,y)

如果一個無噪聲圖像具有陡峭的邊緣,可用拉普拉斯算子將它們找出來。對經拉普拉斯算子濾波後的圖像用零灰度值進行二值化會產生閉合的、連通的輪廓,並消除了所有的內部點。由於是二階微分算子,對噪聲更加敏感,故對有噪聲的圖像,在運用拉普拉斯算子之前需要先進行低通濾波。

選用高斯低通濾波器進行預先平滑是很合適的。由卷積的結合律可以將拉普拉斯算子和高斯脈衝響應組合成一個單一的高斯拉普拉斯核:

-Δ212πσ2e-x2+y22σ2=1πσ41-x2+y22σ2e-x2+y22σ2

這個脈衝響應對x和y是可分離的,因此可以有效地加以實現。

Tip:无需注册登录,“足迹” 会自动保存您的阅读记录。