(僅個人學習摘抄)
圖像分割是圖像識別和圖像理解的基本前提步驟,圖像分割質量的好壞直接影響后續圖像處理的效果。
圖像分割是指將一幅圖像分解為若干互不交疊的、有意義的、具有相同性質的區域。
特征:
(1)分割出來的各區域對某種性質例如灰度,紋理而言具有相似性,區域內部是連通的且沒有過多小孔;
(2)區域邊界是明確的;
(3)相鄰區域對分割所依據的性質有明顯的差異。
不同的分割算法總是在不同的約束之間尋找一種合理的平衡。
圖像分割算法一般是基於亮度值的兩個基本特性之一:不連續性和相似性。
(1)第 1 類性質的應用途徑是基於亮度的不連續變化分割圖像,比如圖像的邊緣。
(2)第 2 類的主要應用途徑是依據事先制定的規則將圖像分割為相似的區域。如:門限(閾值)處理、區域生長、區域分離和聚合。
8.1 間隔檢測
間隔檢測的通用方法:
使用一個模板對整幅圖像進行檢測。
8.1.1 點檢測
孤立點的檢測
使用如圖所示模板,若 |R|≥T,則在模板中心的位置已經檢測到一個孤立點。T 為非負門限。
如果一個孤立點與它周圍的點很不同,則很容易被這類模板檢測到。
8.1.2 線檢測
第 1 個模板對水平方向(一個像素寬度)的線條有很強的響應。
第 2 個模板對 +45° 方向有最佳響應。
令 R1,R2,R3,R4分別表示圖 10.3 中模板的響應,如果|Ri|>|Rj|,則此點被認為與模板 i 方向上的線更相關。
若要檢測特定方向上的線,應使用與這一方向有關的模板,並設置該模板的輸出門限。
8.1.3 邊緣檢測
在邊緣處,灰度和結構等信息產生突變,邊緣是一個區域的結束,也是另一個區域的開始,利用該特征可以分割圖像。
由於圖像數據是二維的,而實際物體是三維的,從三維到二維的投影必然會造成信息的丟失,再加上成像過程中光照的不均和噪聲等因素的影響,使得有邊緣的地方不一定能被檢測出來,而檢測出來的邊緣也不一定代表實際邊緣。
圖像的邊緣有方向和幅度兩個屬性,沿邊緣方向像素變化平緩,垂直於邊緣方向像素變化劇烈。邊緣上的這種變化可以用微分算子檢測出來,通常用一階或二階導數來檢測邊緣。
斜坡部分與邊緣的模糊程度成正比。
一階導數可以用於檢測圖像中的一個點是否在斜坡上。
二階導數的符號可以用於判斷一個邊緣像素是在邊緣亮的一邊還是暗的一邊。
(1)對圖像中的每條邊緣二階導數生成兩個值
(2)一條連接二階導數正極值和負極值的虛構直線將在邊緣中點附近穿過零點,據此可以用於確定粗邊線的中心。(如上圖)
二階導數正數表示暗,負數表示亮。
基於一階導數的邊緣檢測算子包括 Roberts 算子、Sobel 算子、Prewitt 算子等。通過 2X2 或者 3X3 的模板作為核與圖像中的每個像素點做卷積和運算,然后選取合適的閾值以提取邊緣。
拉普拉斯邊緣檢測算子是基於二階導數的邊緣檢測算子,對噪聲敏感,一種改進方式是先對圖像進行平滑處理,然后再應用二階導數的邊緣檢測算子。
圖像邊緣對應一階導數的極大值和二階導數的過零點。
梯度算子是一階導數算子
近似計算:
數字圖像處理中用差分代替微分
1、Roberts 算子
Gx = Z9 - Z5
Gy = Z8 - Z6
2、Prewitt 算子
Gx = (Z7 + Z8 + Z9) - (Z1 + Z2 + Z3)
Gy = (Z3 + Z6 + Z9) - (Z1 + Z4 + Z7)
3、Sobel 算子
Gx = (Z7 + 2Z8 + Z9) - (Z1 + 2Z2 + Z3)
Gy = (Z3 + 2Z6 + Z9) - (Z1 + 2Z4 + Z7)
用於檢測對角邊緣的 Prewitt 算子和 Sobel 算子:
4、拉普拉斯算子
兩種常用的拉普拉斯算子模板:
拉普拉斯算子一般不以其原始形式用於邊緣檢測,這是因為:
(1)作為一個二階導數,拉普拉斯算子對噪聲具有無法接受的敏感性;
(2)拉普拉斯算子的幅值產生雙邊緣,這是復雜的分割不希望有的結果;
(3)拉普拉斯算子不能檢測邊緣的方向。
拉普拉斯算子在分割中起的作用包括:
(1)利用它的零交叉的性質進行邊緣定位;
(2)確定一個像素是在邊緣暗的一邊還是亮的一邊。
噪聲對邊緣檢測的影響:
5、高斯—拉普拉斯算子
考慮函數: 模糊圖像
h 的拉普拉斯算子(h 關於 r 的二階導數):
用該函數對圖像進行平滑濾波,然后再應用拉普拉斯算子。
算子比較:
Roberts算子:Roberts算子利用局部差分算子尋找邊緣,邊緣定位精度較高,但容易丟失一部分邊緣,同時由於圖像沒經過平滑處理,因此不具備抑制噪聲的能力。該算子對具有陡峭邊緣且含噪聲少的圖像效果較好。
Sobel算子和Prewitt算子:都是對圖像先做加權平滑處理,然后再做微分運算,所不同的是平滑部分的權值有些差異,因此對噪聲具有一定的抑制能力,但不能完全排除檢測結果中出現的虛假邊緣。雖然這兩個算子邊緣定位效果不錯,但檢測出的邊緣容易出現多像素寬度。
Laplacian算子:是不依賴於邊緣方向的二階微分算子算子,對圖像中的階躍型邊緣點定位准確,該算子對噪聲非常敏感,它使噪聲成分得到加強,這兩個特性使得該算子容易丟失一部分邊緣的方向信息,造成一些不連續的檢測邊緣,同時抗噪聲能力比較差。
8.2 門限處理(閾值分割)
由於圖像門限處理的直觀性和易於實現的性質,使它在圖像分割應用中處於中心地位。
8.2.1 基本原理
圖(a)為一幅圖像的灰度級直方圖,其由亮的對象和暗的背景組成。對象和背景的灰度級形成兩個不同的模式。選擇一個門限值 T,可以將這些模式分開。(b)包含三個模式。
原始圖像 —— f(x,y)
灰度閾值 —— T
閾值運算得二值圖像 —— g(x,y)
閾值選擇直接影響分割效果,通常可以通過對灰度直方圖的分析來確定它的值。
圖像分割之后,即經過閾值處理之后,圖像變成二值化圖像。
8.2.2 閾值選擇
利用灰度直方圖求雙峰或多峰,選擇兩峰之間的谷底作為閾值。
1、人工閾值
人工選擇法是通過人眼的觀察,應用人對圖像的認識,在分析圖像直方圖的基礎上,人工選擇出合適的閾值。也可以在人工選出閾值后,根據分割效果,不斷的交互操作,從而選擇出最佳的閾值。
2、自動閾值(迭代法)
在無人介入的情況下自動選取閾值時大部分應用的基本要求,自動閾值法通常使用灰度直方圖來分析圖像中灰度值的分布,結合特定的應用領域知識來選取合適的閾值。
基本思想:開始時選擇一個閾值作為初始估計值,然后按某種策略不斷地改進這一估計值,直到滿足給定的准則為止。在迭代過程中,關鍵之處在於選擇什么樣的閾值改進策略,好的閾值的改進策略應該具備兩個特征,一是能夠快速收斂,二是在每一個迭代過程中,新產生閾值優於上一次的閾值。
迭代式閾值選擇的基本步驟如下:
(1)選擇圖像灰度的中值作為初始閾值 Ti = T0
(2)利用閾值 Ti 把圖像分割成兩部分區域,R1 和 R2,並計算其灰度均值
(3)計算新的閾值 Ti+1
(4)重復步驟 2、3,直到 Ti+1 和 Ti 的值差別小於某個給定值
8.3 區域分割
基本思想
閾值分割法由於沒有或很少考慮空間關系,使多閾值選擇受到限制。
基於區域的分割方法可以彌補這點不足,它利用的是圖像的空間性質,該方法認為分割出來的屬於同一區域的像素應具有相似的性質,其概念是相當直觀的。
傳統的區域分割算法有區域生長法和區域分裂合並法。該類方法在沒有先驗知識可以利用時,對含有復雜場景或自然景物等先驗知識不足的圖像進行分割,也可以取得較好的性能。但是,空間和時間開銷都比較大。
基本公式
形式化地定義如下:令 I 表示圖像,H 表示具有相同性質的謂詞,圖像分割把 I 分解成 n 個區域 Ri,i=1,2,...,n,滿足:
條件(1)表明分割區域要覆蓋整個圖像且各區域互不重疊;
條件(2)表明每個區域具有相同的性質;
條件(3)表明相鄰的兩個區域性質相異不能合並為一個區域。
8.3.1 區域生長
區域生長是一種根據事前定義的准則將像素或子區域聚合成更大區域地過程。
區域生長主要考慮像素及其空間鄰域像素之間的關系
開始時確定一個或多個像素點作為種子,然后按某種相似性准則增長區域,逐步生成具有某種均勻性的空間區域,將相鄰的具有相似性質的像素或區域歸並從而逐步增長區域,直至沒有可以歸並的點或其它小區域為止。
區域內像素的相似性度量可以包括平均灰度值、紋理、顏色等信息。
生長准則:所考慮的像素點和種子點地灰度值地絕對值差小於或等於某個閾值 T,將該像素點歸入種子點所在的區域。
區域生長步驟:
(1)選擇合適的種子點
(2)確定相似性准則(生長准則)
(3)確定生長停止條件
8.3.2 區域分裂
如果區域的某些特性差別比較大,即不滿足一致性准則時,則區域應該采用分裂法,分裂過程從從圖像的最大區域開始,一般情況下,是從整幅圖像開始。
注意:
(1)確定分裂准則(一致性准則)
(2)確定分裂方法,即如何分裂區域,使得分裂后的子區域的特性盡可能都滿足一致性准則值
算法:
(1)形成初始區域;
(2)對圖像的每一個區域 Ri,計算 P(Ri),如果 P(Ri)=FALSE,則沿着某一合適的邊界分裂區域;
(3)重復步驟(2),當沒有區域需分裂時,算法結束。
8.3.3 區域合並
單純的區域分裂只能把圖像分成許多滿足一致性謂詞的區域,相鄰的具有相同性質的區域並沒有合成一體。
(1)合並運算就是把相鄰的具有相似性質的區域合稱為一個區域
(2)合並算法中最重要的運算是確定兩個區域的相似性
(3)評判區域相似性方法有許多,評判相似性的方法可以基於區域的灰度值,也可以基於邊界的強弱性等因素。一種簡單的方法是比較它們的灰度均值。
算法:
(1)使用某種方法進行圖像的初始區域分割。
(2)對於圖像中相鄰的區域,計算是否滿足一致性謂詞,若滿足則合並為一個區域。
(3)重復步驟(2),知道沒有區域可以合並,算法結束。
8.3.4 區域分裂合並
區域分裂合並法無需預先指定種子點,它按某種一致性准則分裂或者合並區域。可以先進行分裂運算,然后再進行合並運算;也可以分裂和合並運算同時進行,經過連續的分裂和合並,最后得到圖像的精確分割效果。
分裂合並法對分割復雜的場景圖像比較有效。
具體實現時,分裂合並算法可以基於四叉樹數據表示方式進行。
算法:
(1)設整幅圖像為初始區域;
(2)對每個區域 R,如果 P(R)=FALSE,則把該區域分裂成四個子區域;
(3)重復上一步,直到沒有區域可以分裂;
(4)對圖像中任意兩個相鄰的 R1 和 R2,如果 P(R1UR2)=FALSE,則把這兩個區域合並成一個區域;
(5)重復上一步,直到沒有相鄰區域可以合並,算法結束。