1. 程式人生 > >數字影象處理中常用影象分割演算法有哪些?

數字影象處理中常用影象分割演算法有哪些?

數字影象處理中常用影象分割演算法有哪些?

1.多數的影象分割演算法

2.影象邊緣分割

3.影象閾值分割

4.基於區域的分割

5.形態學分水嶺演算法

多數的影象分割演算法 均是基於灰度值的不連續相似的性質。在前者中,演算法以灰度突變為基礎分割一幅影象,如影象邊緣分割。假設影象不同區域的邊界彼此完全不同,且與背景不同,從而允許基於灰度的區域性不連續性來進行邊界檢測。後者是根據一組預定義的準則將一幅影象分割為相似區域,如閾值處理、區域生長、區域分裂區域聚合都是基於這種方法形成的。下面將對每類演算法進行詳細說明。

 

影象邊緣分割:

邊緣是影象中灰度突變畫素的集合,一般用微分進行檢測。基本的邊緣檢測演算法有:Roberts運算元、Prewitt運算元、Sobel運算元。稍高階的演算法有:Marr-Hilderth邊緣檢測器、Canny邊緣檢測器。

影象閾值分割:由於閾值處理直觀、實現簡單且計算速度快,因此閾值處理在分割應用中處於核心地位。閾值處理可以分為單閾值處理與多閾值處理。在單閾值處理中最常用且分割效果也不錯的演算法是Otsu(最大類間方差演算法)演算法。多閾值處理:K類由K-1個閾值來分離,即計算影象的多個類間方差,多閾值處理的分割結果相較於單閾值的結果雖然會更好一些,但分類數量增加時它會開始失去意義,因為我們僅僅處理一個變數(灰度),此時可以通過增加變數如彩色來進行解決。

基於區域的分割:區域生長演算法和區域分裂與聚合都是屬於基於區域的分割演算法。

區域生長演算法是根據預先定義的生長準則將畫素或子區域組合為更大的區域的過程。

基本方法是從一組“種子”點開始,將與種子預先定義的性質相似的那些鄰域畫素新增到每個種子上來形成這些生長區域(如特定範圍的灰度或顏色)。區域分裂與聚合是首先將一幅影象細分為一組任意的不相交區域,然後按照一定規則聚合、分裂這些區域。

形態學分水嶺演算法:分水嶺的概念是以三維形象化一幅影象為基礎的。

在圖中,我們主要考慮三種類型的點:

(1)屬於一個區域最小值的點;

(2)把一點看成是一個水滴,如果把這些點放在任意位置上,水滴一定會下落到一個單一的最小值點;

(3)處在該點的水會等可能性地流向不止一個這樣的最小值點。

對於一個特定的區域最小值,滿足條件(2)的點的集合稱為該最小值的匯水盆地分水嶺

滿足條件(3)的點形成地表面的峰線,稱之為分割線分水線

為了達到更好的分割效果,常常將分水嶺演算法應用到梯度影象上,而不是影象本身。

 

(二)

個人認為影象分割的演算法可以從分割目標入手:通常是要將影象分成目標區域和背景。

需要從影象的特徵入手,以灰度影象為例(其餘型別的影象處理均類似),影象圖形很明顯的特徵有:

影象灰度值特徵、目標邊界特徵、紋理特徵、形態學特徵等等;

還有一些基於這些特徵所計算提取出的特徵,比如資訊熵、能量泛函等等。

最為簡單的就是灰度值特徵了,一幅圖中有時候目標區域與背景區域有很明顯的亮度區別,基於這個認識,只要試圖找到某個亮度的值,我們假設低於該值的認為是背景,高於該值的認為是目標。關於找這個值的演算法就是閾值分割演算法了,像OTSU、迭代法、最大熵法等等都是屬於這一範疇。

同時也可以注意到,在空域內,目標的邊界是區分目標與背景的重要依據,因此區分邊界也是一個重要的手段,通常邊界點周圍灰度值變化率很高,因此可以基於影象灰度梯度來識別。這就有一些sobel運算元、canny運算元等等方式,都是通過找到邊界來確定目標區域背景的。

在有些影象中,目標區域具有一定的連續性,基於區域連續性的一些方法像區域生長法、分水嶺演算法等(本人對這一塊不是很熟悉)。

另外,基於影象原始的特徵進行提取獲得“精煉”的二級特徵,並據此分割也是一種好的方法。像SNAKE演算法,該演算法認為目標區域的邊界是“外力”,內力共同作用的結果,因此當外力內力平衡時找到邊界,基於這種平衡,提出了判斷能量泛函最小的判斷原則。此外,還有基於幾何活動輪廓模型的水平集方法,該方法是藉助於目標區域的幾何度量引數,可以比較好的處理一些拓撲變化。

除去經典的閾值分水嶺分割演算法外,有主動輪廓及衍生的水平集,圖割及相關演算法(例如GrabCut),互動式分割,以及Cosegmentation。

所有分割演算法的核心目的是解決目標區域語義合併難題。例如互動式分割,通過精準互動來解決該問題。Cosegmentation通過分割相同或相似目標來處理該問題。

(三)

(1)基於閾值的分割方法:可在各種顏色空間或不同通道中完成閾值、自適應閾值、

(2)基於邊緣的分割方法:各種邊緣檢測運算元

(3)基於區域的分割方法:分水嶺、區域歸併與分裂

(4)圖割分割:最大流(最小割)演算法

(5)基於深度資訊的分割

(6)基於先驗資訊的分割

 

基於特定理論的分割方法等。

特定理論大概有:聚類分析、模糊集理論、基因編碼、小波變換等。