(僅個人學習摘抄)
9.1 概述
圖像分割結果是得到了區域內的像素集合,或位於區域邊界上的像素集合,這兩個集合是的。
與分割類似,圖像中的區域可用其內部(如組成區域的像素集合)表示,也可用其外部(如組成區域邊界的像素集)表示。
一般來說,若果關心的是區域的反射性質,如灰度、顏色、紋理等,常用內部表示法;如果關心的是區域形狀,則選用外部表示法。
1、表達:直接具體地表示目標
(1)內部表達:反射性質(灰度、顏色、紋理)
(2)外部表達:形狀
好的表達方法應具有節省存儲空間、易於特征計算等優點。
2、描述:抽象的表示目標
(1)用一組符號(描述子)來表征圖像中被描述物體的某些特征,可以是對圖像中各組成部分的性質的描述,也可以是各部分彼此間的關系的描述
(2)邊界描述和區域描述
好的描述應在盡可能區別不同目標的基礎上對目標的尺度、平移、旋轉等不敏感,具有通用性。
3、關系
(1)表達對描述起重要作用,限定了描述的精確性
(2)只有目標的描述,表達方法才有意義
(3)表達側重於數據結構,描述側重於區域特征及區域間的聯系和差別
9.2 表示方法
9.2.1 鏈碼
鏈碼用於表示由順序連接的具有指定長度和方向的直線段組成的邊界線。
這種表示方法基於線段的 4 或 8 連接,每一段的方向使用數字編號方法進行編碼。
1、鏈碼算法:
給每一個線段邊界一個方向編碼;有4鏈碼和8鏈碼兩種編碼方法。
從起點開始,沿邊界編碼,至起點被重新碰到,結束一個對象的編碼。
2、缺點及改進:
(1)鏈碼相當長;噪音會產生不必要的鏈碼
改進:加大網格空間;依據原始邊界與結果的接近程度,來確定新點的位置。
4-鏈碼:003332221101
減少點的個數,降低鏈碼長度。
(2)由於起點的不同,造成編碼的不同
改進:從固定位置作為起點(最左最上)開始編碼;起點歸一化
(3)由於角度的不同,造成編碼的不同
改進:通過使用鏈碼的差分代替碼字本身的方式
循環差分鏈碼:用相鄰鏈碼的差分代替鏈碼
3、鏈碼平滑
將原始的鏈碼序列用較簡單的序列代替
示例:
空心圓:平滑后被除去的原輪廓點
4、邊界段和凸包
把邊界分解成若干段分別表示;節省表達數據量;借助凸包(包含目標的最小凸形)概念。
根據凸包把邊界分解:
目標:像素集合 S
凸包:包含 S 的最小凸形 H
凸殘差:D=H-S
9.2.2 多邊形近似
基本思想:用最少的多邊形線段,獲取邊界形狀的本質。
尋找最小基本多邊形的方法一般有兩種:點合成法、邊分裂法。
1、點合成算法
步驟:
(1)沿着邊界選兩個相鄰的點對,計算首尾連接直線段與原始折線段的誤差 R。
(2)如果誤差 R 小於預先設置的閾值 T。去掉中間點,選新點對下一相鄰點對,重復(1);否則,存儲線段的參數,置誤差為 0,選被存儲線段的終點為起點,重復(1)(2)。
(3)當程序的第一個起點被遇到,算法結束。
綠色是原本的邊界,,當 R < T 時,上面那個點被去除。
缺點:
頂點一般不對應於邊界的拐點(如拐角)。因為新的線段直到超過誤差的閾值才開始畫。
2、分裂邊算法
步驟:
(1)連接邊界線段的兩個端點(如果是封閉邊界,連接最遠點);
(2)如果最大正交距離大於閾值,將邊界分為兩段,最大值點定位一個頂點。重復(1);
(3)如果沒有超過閾值的正交距離,結束。
9.2.3 外形特征
1、基本思想
外形特征是一種用一維函數表達邊界的方法。基本思想是把邊界的表示降到一維函數。
2、函數定義
質心角函數:邊上的點到質心的距離 r,作為夾角 θ 的函數 r(θ)。
3、缺點與改進
問題:函數依賴於旋轉和比例縮放變換
改進:
(1)對於旋轉——兩種改進
① 選擇離質心最遠的點作為起點
② 選擇從質心到主軸最遠的點作為起點
(2)對於比例變換
對函數進行正則化,使函數值總是分布在相同的值域里,比如說 [0,1]。
9.3 邊界描述子
9.3.1 簡單描述子
邊界的周長:最簡單的描述符之一。沿輪廓線計算像素的個數,給出了一個長度的近似估計。
邊界的直徑:邊界 B 的直徑是
D 是歐氏距離或幾何距離,pi,pj 是邊界上的點。直徑的長度和直徑的兩個端點連線(這條線被稱為邊界的主軸)的方向,是關於邊界的有用的描述符。
邊界的曲率
曲率被描述為斜率的變化率。近似:用相鄰邊界線段(描述為直線)的斜率差作為在邊界線交點處的曲率描述子。
交點 a 處的曲率為:dk = k1 - k2,其中 k1,k2 為相鄰線段的斜率。
9.3.2 形狀數
基於鏈碼的一種邊界形狀描述。
輪廓差分碼中其值最小的 1 個序列。
形狀數定義:最小循環首差鏈碼
形狀數序號 n 的定義:形狀數表達形式中的位數。上例序數為 8。對於封閉邊界序號一定是偶數,如 4、6、8。
形狀數與方向無關。
問題:雖然鏈碼的首差是不依賴於旋轉的,但一般情況下邊界的編碼依賴於網格的方向。
改進:規整化網格方向
幾個基本概念:
邊界最大軸 a:是連接距離最遠的兩個點的線段。
邊界最小軸 b:與最大軸垂直,且其長度確定的包圍盒剛好包圍邊界。
邊界離心率 c:最大軸長度與最小軸長度的比 c = a / b
基本矩形:包圍邊界的矩形。
規整化網格方向算法的思想:
大多數情況下,將鏈碼網格與基本矩陣對齊,即可得到一個唯一的形狀數。
規整化網格方向的一種算法如下:
(1)首先確定形狀數的序號 n;
(2)在序號為 n 的矩形形狀數中,找出一個與給定形狀的基本矩形的離心率最接近的形狀數;
(3)然后再用這個矩形與基本矩形對齊,構造網格;
(4)用獲得鏈碼的方法得到鏈碼;
(5)再得到循環首差;
(6)首差中的最小循環數即為形狀數。
9.3.3 傅里葉描述子
傅里葉描述子:將一個二維問題簡化成一個一維問題
1、基本思想
(1)對於 XY 平面上的每個邊界點,將其坐標用復數表示為:
s(k) = x(k) + jy(k),k=0,1,...,N-1
(2)進行離散傅里葉變換
系數 a(u) 被稱為邊界的傅里葉描述子
(3)選取整數 P≤N-1,進行逆傅里葉變換(重構)
這時,對應於邊界點數沒有變化,但在重構每一個點所需要的計算項大大減少了。如果邊界點數很大,P 一般選為 2 的指數次方的整數。
2、P 的選取與描述符的關系
在上述方法中,相當於對於 u>P-1 的部分舍去不予計算。由於傅里葉變換中高頻部分對應於圖像的細節描述,因此 P 取得越小,細節部分丟失得越多。
結論:低階系數能夠反映大體形狀,高階系數可以精確定義形狀特征,少數傅里葉描述子攜帶了形狀信息,能夠反映邊界的大略本質。
3、使用價值
(1)較少的傅里葉描述子(如 4 個),就可以獲取邊界本質的整體輪廓;
(2)這些帶有邊界信息的描述子,可以用來區分明顯不同的邊界。
4、優點
(1)使用復數作為描述符,對於旋轉、平移、縮放等操作和起始點的選取不十分敏感。
(2)幾何變換的描述子可通過對函數作簡單變換來獲得
9.4 關系描述子
9.4.1 基本思想
通過挖掘各個成分之間的結構關系來描述邊界。
圖像中各個部分間的結構關系是二維的,而串是一維的,期望找到一種方法把二維關系轉化為一維的串。
主導思想是考慮物體各個部分的連接線段。
9.4.2 階梯關系編碼
對於如下階梯形邊界,定義兩個基本元素 a,b。
定義如下產生規則:
(1)S → aA 表明起始符 S 可以被圖元 a 和變元 A 代替
(2)A → bS 表明變元 A 可以被 b 和 S 代替
(3)A → b 變元 A 可以只被 b 代替
其中 S、A 是變量。
9.4.3 骨架關系編碼
用有向線段來描述一個圖像的各個部分(例如同構區域),這個線段是通過頭尾連接等方法得到的。線段之間的不同運算代表了區域的不同組合。
當圖像的連通性可以通過首尾相接或其它連續的方式描述的時候,最適於使用這種串來描述。
9.4.4 方向關系編碼
跟蹤對象的邊界,將跟蹤得到的線段按照方向或長度來編碼。
9.4.5 內角關系編碼
根據內角角度范圍不同,編碼為 8 個符號。
9.4.6 樹結構關系
樹結構中每個節點的意義和結點之間的關系最為重要。