岡薩雷斯《數字圖像處理》讀書筆記(十一)——表示和描述

雖然不是專門研究圖像分割的(峯兄纔是),但多少接觸了一點,並且圖像分割是圖像處理中的最爲複雜的,通過圖像分割可以很好地認識圖像處理的好多方法。今天看的是邊界追蹤和鏈碼的表示。網易計算機視覺工程師的第一道選擇題就考察了這個,其實岡薩雷斯的書第11章就有講,還是要多看書啊。

書中是接着圖像分割講的。我們分割完成後總要表示它,那麼就有兩種思路,一種是選擇外部特徵,表示分割部分的邊界,一種是選擇內部特徵,找出分割主體的像素。之所以說思路,還沒有上升到方法,是因爲具體的方法要求描述子要對大小、旋轉、平移不敏感。

邊界追蹤就是一種找邊界的方法,它的輸出是排序過的邊界點的序列。追蹤方法有Moore邊界追蹤方法和Square跟蹤算法。Moore算法是在當前點的8鄰域(摩爾鄰域)內順時針找黑色像素,找到則遞歸進行下一步。Square則沒有利於鄰域進行搜索,是一個if-then規則,根據當前像素的情況進行移動方向的選擇,如果當前像素是黑色,則左移一個像素;如果當前是白色,則右移。這種方法無法追蹤得到只具有八鄰接性而不具有四鄰接性圖形的邊界。

邊界追蹤算法找到了圖形邊界,我們要對它進行描述和表示,其實就是進行編碼。書中主要介紹了Freeman鏈碼,基於Moore邊界追蹤,對下一個像素相對於當前像素的位置進行編碼(有8個方向)。對8個方向依次用0~7的數字表示。就像特戰隊隊員之間通報敵人在幾點鐘方向一樣,鏈碼錶示了下一個邊界點的方向(遠近就是一個像素塊的距離,像素的對角線或者邊長)。

                                 3

                                2

                                1

                                 4

 

                                0

                                 5

                                 6

                                7

Freeman鏈碼顯然與初始點的選取有關,我們還需要使編碼與初始錨點無關,即無論選擇哪一個點做起始點,最後的編碼都相同。注意到如果依次使用不同的點做初始點,編碼之間的關係是循環移位,於是我們可以對它們進行歸一化,選擇其中最小的最爲最終的編碼(把編碼看作自然數進行大小的比較)。

剛纔提到了,描述子應該具有旋轉、平移、縮放不變性。平移不變性很明顯是滿足的,縮放不變性通過重採樣也可以滿足。旋轉不變性要通過差分編碼來解決,同時減少編碼長度。需要注意的是計算差值的時候不是對原始的Freeman鏈碼的相鄰兩個數做減法,而是要滿足逆時針關係的條件下做減法,因爲在8鄰域內編碼是按照逆時針的順序編碼的。比如643的差分碼。6到4按照逆時針的走法要6步,4到3要7步,所以差分碼是67.但是這也只能滿足旋轉角度是45度的整數倍時的不變性。

鏈碼所能編碼的邊界應該是離散的,在保持邊界特徵的前提下儘量短。這就是多邊形近似。MPP最小周長多邊形近似利用了邊界區域像素內外牆之間的凹頂點和凸頂點,利用橡皮條原理完成近似。此外還有聚合技術和分裂技術。

除了鏈碼,表示邊界和形狀的方法還有標記圖和邊界線段、骨架。標記圖是邊界的一維表示,描述質心到邊界的距離與角度的關係。爲了實現旋轉不變性,可以將距離質心最遠的點選爲起始點,或者在本徵軸上選擇距離質心最遠的點。注意是起始點的意思是角度軸以起始點的角度開始變化。邊界線段利用了凸殼和凸缺的概念,從一個凸缺進入另一個凸缺的轉折點就是分割點。骨架可以用中軸變換MAT來定義,組成骨架的點是邊界上與該點有多個最近鄰點的點,可以用燎原之火來形象化:大火從邊界開始向中心燃燒,它們集合的地方就是骨架。

邊界描述子

講完表示,就要說到真正的邊界描述子了。最簡單的是描述邊界的長度,偏心率,曲率。長度可以通過鏈碼求出,垂直和水平方向長度是1,對角是根號2.偏心率是長軸和短軸之比,長軸短軸相互垂直,長軸就是直徑,是其端點是邊界上距離最遠的點。曲率描述斜率的變化率。斜率變化非負處的點是凸線段的一部分(其實就是二階導)。

描述子還有形狀數。同樣基於鏈碼。形狀數的階n定義爲鏈碼的長度(數字個數)。差分鏈碼也可以歸一化,得到的就是形狀編號。

傅里葉描繪子,將二維平面的點看作複平面的點,座標看作是一個複數,從而將二維問題簡化成一維問題。對它求傅里葉變換,然後就可以重構原來的邊界信號。重構過程中可以選擇部分分量(捨去高頻細節)。同時藉助傅里葉變換可以很好地表示選擇平移縮放變換。將二維問題轉換爲一維問題的方法還有統計矩。矩其實是變量與均值的插值的冪的期望。我們可以將曲線旋轉作爲直方圖,這樣無論是哪個角度的曲線,都通過將斷點連線轉至水平方向,即實現了旋轉不變性,進一步將直方圖歸一化爲單位面積,直方圖轉爲概率密度圖,實現了尺寸的歸一化。矩的實現簡單,而且矩包含了對邊界形狀的物理解釋。二階矩是曲線關於均值的擴展程度,三階矩度量曲線關於均值的對稱性。

區域描述子

以上是邊界的描述子,對於區域也有對應的一些描述子。比如使用周長和麪積表示區域的緻密性。圓度率也可以描述緻密性,是該區域的面積與同樣周長的圓的面積之比。拓撲描繪子,通過孔洞數量H和連通分量的數量C可以定義歐拉數E=C-H.歐拉數同時還可以簡單地解釋由直線線段表示的區域(多邊形網絡)。V-Q+F=C-H,V表示頂點數,Q是邊數,F是面數。使用連通分量可以在已分割圖像中提取最大特徵。

區域的另一個特徵是紋理。紋理的表示方法又有三種,統計方法、結構方法和頻譜方法。

統計方法的對象是灰度直方圖,方差表示度量對比度,三階矩度量直方圖偏斜度(負數表示直方圖對稱尺度向左偏)。直方圖中無法體現像素的位置信息,我們通過共生矩陣可以表示灰度值之間的相對位置。共生矩陣其實也是一種統計,只不過統計的是當前像素右邊緊鄰的像素的灰度值。矩陣的元素m34表示灰度值爲3的像素右邊第一個元素灰度值是4的情況個數是m。

結構方法的思想是找到一些基本的紋理單元,通過一些規則可以生成複雜的紋理。

頻譜方法當然是利用傅里葉頻譜,進一步使用極座標,並且分別對r和角度theta積分,得到兩個一維函數。

不變矩

除了紋理,還可以使用不變矩描述區域。大小爲MxN的圖像的二維(p+q)階矩定義爲:

中心矩還要在求冪之前與均值做差。由二階矩和三階矩可以推出7個不變矩組,書中列出了7種不變矩在旋轉縮放鏡像平移下的表現。

使用主分量進行描繪

有時候我們可以得到多光譜下的圖像,即便是單幅圖像也可以分成三通道下的三個分量圖像。每個像素對應一個多維的向量,於是MxN大小的圖像可以得到MxN個向量,向量維數由圖像的個數決定。用比較饒但是簡潔的說法就是圖像的大小決定向量的個數,圖像的個數決定向量的大小(維數)。藉助霍特林變換(離散KL變換)

A由x的協方差矩陣的特徵向量構成。y的協方差矩陣是對角矩陣,主對角線的特徵值就是x的協方差矩陣的特徵值。可以通過y重構x,當不使用所有的特徵值和其對應的特徵向量重構時,誤差就是剩餘沒有使用的特徵值的和,所以我們霍特林變換是均方誤差最小的,因爲A的行向量對應的特徵值是遞減的。霍特林變換也叫主分量變換。

協方差矩陣的最大特徵值對應的特徵向量指向了總體方差最大的方向,第二個特徵向量與第一個垂直,這樣就可以找到質心,同時使用主分量變換可以對圖像尺度、平移和旋轉歸一化。

Reference:

  1. Square:https://blog.csdn.net/kksc1099054857/article/details/74937731
  2. Freeman:https://blog.csdn.net/yang6464158/article/details/39801381
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章