一、表示
1.鏈碼
鏈碼是對邊界點的一種編碼表示方法,其基本思想是利用一系列具有特定長度和方向的相連的直線段來表示目標的邊界。
舉例:若設起始點O的座標爲(5,5),則分別用如下4方向和8方向鏈碼按逆時針順序表示區域邊界:
4方向鏈碼: (5, 5)1 1 1 2 3 2 3 2 3 0 0 0;
8方向鏈碼: (5, 5)2 2 2 4 5 5 6 0 0 0。
2.鏈碼錶示的特點
A、只有邊界的起點需用絕對座標表示,其餘點都可只用接續方向來代表偏移量;
B、與用座標值相比,鏈碼錶達可大大減少邊界表示所需的數據量。
3.存在的問題
直接對分割所得的目標邊界編碼,有可能出現如下問題:
A、產生的碼串通常很長;
B、噪聲等干擾會導致小的邊界變化而使鏈碼發生與目標整體形狀無關的較大變動。
4.改進措施
對原邊界以較大的網格重新採樣,並把與原邊界點最接近的大網格點定爲新的邊界點。
5.鏈碼的起點歸一化
A、問題的引出
鏈碼起點的選擇常是很關鍵的。對同一個邊界,如用不同的邊界點作爲鏈碼起點,得到的鏈碼是不同的。
B、歸一化
給定1個從任意點開始而產生的鏈碼,可把它看作1個由各方向數構成的自然數。將這些方向數依1個方向循環以使它們所構成的自然數的值最小。我們將這樣轉換後所對應的鏈碼起點作爲這個邊界的歸一化鏈碼的起點。
舉例:
6.鏈碼的旋轉歸一化
A、問題
用鏈碼錶示給定目標的邊界時,如果目標旋轉,則鏈碼會發生變化。
B、解決方法
利用鏈碼的一階差分來重新構造1個序列(1個表示原鏈碼各段之間方向變化的新序列)。這相當於把鏈碼進行旋轉歸一化。
(雷剛薩斯P516:一階差分是通過計算鏈碼中的分隔兩個相鄰像素的方向變化的數。是按4方向或者8方向鏈碼的逆時針方向得到的)自己畫個圖就知道啦!注意是逆時針!原理就是計算相鄰兩個元素方向變化(按逆時針方向)的次數。例如5→5變化了0步,記爲0,4→6變化了兩步,記爲2。
原碼 旋轉90度碼
鏈碼 10103322 21210033
4方向差分: 33133030 33133030
7.多邊形近似
(1)問題的引出
實際應用中的數字邊界常由於噪聲、採樣等的影響而有許多較小的不規則處,這些不規則處常對鏈碼和邊界段表達產生較明顯的干擾影響。
(2)多邊形方法的基本思想
多邊形是一系列線段的封閉集合,它可用來逼近大多數使用的曲線到任意的精度。
在實際中多邊形表達的目的:要用盡量少的線段來代表邊界並保持邊界的基本形狀,從而用較簡單的形式來表達和描述邊界。儘量少!
將邊界看成是有彈性的線,將組成邊界的像素系列的內外邊各看成一堵牆,如將線拉緊則可到最小周長多邊形。
MPP算法解釋,見雷剛薩斯P520.本質上就是一個尋找MPP的算法。記住sgn()函數的意義就好!
sgn參考:https://blog.csdn.net/qq_18234121/article/details/82621723
該算法的效果描述:http://blog.sina.com.cn/s/blog_6f57a7150100opux.html
8.聚合技術
算法步驟:
1)沿着邊界選兩個相鄰的點對,計算首尾連接直線段與原始折線段的誤差R。
2)如果誤差R小於預先設置的閾值T。去掉中間點,選新點對與下一相鄰點對,重複1);否則,存儲線段的參數,置誤差爲0,選被存儲線段的終點爲起點,重複1)2)。
3)當程序的第一個起點被遇到,程序結束。
9.分裂技術
方法:將一條線段不斷的分割爲兩個部分,直到滿足定好的某一標準。
算法步驟:
1)連接邊界線段的兩個端點(如果是封閉邊界,連接最遠點);
2)如果最大正交距離大於閾值,將邊界分爲兩段,最大值點定位一個頂點。重複1);
3)如果沒有超過閾值的正交距離,結束。
10.標記圖
邊界的一維函數表示。最簡單的方法是:角度的函數的形式畫出質心到邊界的距離。
不管怎麼生成標記圖,概念都是將邊界表示簡化爲描述起來比原來的二維邊界更加簡單的一維函數
11.邊界線段
(1)基本概念
A、一個任意集合S(區域)的凸起外緣H是:包含S的最小凸起的集合。
B、H-S的差的集合被稱爲集合S的凸起補集D。
分割方法:追蹤S的輪廓,並標記進入或者離開一個凸缺的轉變點。
存在問題:噪音的影響,導致出現零碎的劃分。
改進措施:先平滑邊界,然後再分段。
12.骨架
(1)基本思想
表示一個平面區域結構形狀的一種重要方法是把它削減成圖形。這種削減可以通過細化(也稱爲抽骨架)算法,獲取區域的骨架來實現。
(2)Blum的中軸變換方法(MAT)
設:R是一個區域,B爲R的邊界點,對於R中的點p,找p在B上“最近”的鄰居。如果p有多於一個的鄰點,稱它屬於R的中軸(骨架)
12.1 算法改進思想
在保證產生正確的骨架的同時,改進算法的效率。比較典型的是一類細化算法,它們不斷刪去邊緣點,但要受到下列條件約束:A、不移去端點
B、不破壞連通性
C、不引起區域的過度腐蝕
12.2一種細化二值區域的算法:假設區域內的點值爲1,背景值爲0。由兩個基本操作組成。
二、邊界描繪子
1.一些簡單的描繪子
1.1邊界的長度:
A、定義:區域的邊界長度。
B、計算方法
1)周長用邊界所佔面積表示, 也即邊界點數之和, 每個點佔面積爲1的一個小方塊。
2) 當把像素看作一個個點時,則周長用鏈碼錶示。此時,當鏈碼值爲奇數時,其長度記作 ; 當鏈碼值爲偶數時,其長度記作1。即周長p表示爲
4鄰域表示中,只有0 1 2 3 ,不會有存在,在8鄰域表示中:奇數正好是對角線方向,所以要乘以。
1.2 邊界的直徑
Diam(B) = max[D(pi, pj)]
邊界的直徑也稱爲邊界的長軸,短軸的定義爲垂直於長軸的直線。這樣的兩條線和邊界會有四個交點,這個方形稱爲基本矩形,長軸與短軸之比稱爲偏心率, 偏心率也是一個很有用的描繪子。
1.3 邊界線的離心率:長軸和短軸的比率。
A、邊界最大軸a:是連接距離最遠的兩個點的線段。
B、邊界最小軸b:與最大軸垂直,且其長度確定的包圍盒剛好包圍邊界。
C、基本矩形: 包圍邊界的矩形。
1.4 曲率
定義爲斜率的改變率,描述了邊界上各點沿邊界方向的變化量。用相鄰邊界線段(描述爲直線)的斜率差作爲在邊界線交點處的曲率描述子。
2.形狀數
(1)定義:形狀數是鏈碼的最小值的差分碼。
例如:基於4—方向的鏈碼爲:10103322,差分碼爲:33133030,形狀數爲:03033133。
(2)形狀數的階(order)
形狀數序列的長度(即鏈碼的個數)。對閉合曲線,階總是偶數。對凸形區域,階對應邊界外包矩形的周長。形狀數與方向無關
(3)存在問題
雖然鏈碼的首差是不依賴於旋轉的,但一般情況下邊界的編碼依賴於網格的方向。
(4)改進措施(規整化網格方向)
大多數情況下,將鏈碼網格與基本矩形對齊,即可得到一個唯一的形狀數。規整化網格方向的一種算法如下 :
A、首先確定形狀數的序號n;
B、在序號爲n的矩形形狀數中,找出一個與給定形狀的基本矩形的離心率最接近的形狀數的矩形。
C、然後再用這個矩形與基本矩形對齊,構造網格。
D、用獲得鏈碼的方法得到鏈碼;
E、再得到循環首差;
F、首差中的最小循環數即爲形狀數。
2.傅里葉描繪子
https://blog.csdn.net/qq_18234121/article/details/83014424
3.統計矩
(1)基本思想:
將描述形狀的任務減少至描述一個一維函數,邊界線段的形狀可以通過簡單的統計矩進行定量的描述,如均值、方差和高階矩。(2)統計矩的定義
A、把邊界當作直方圖函數,將g(r)歸一化爲單位面積下的函數並把它做成直方圖,就是講作爲產生值的概率。
函數的獲得方式:將線段的兩個端點連接起來,旋轉該直線,直至其爲水平線段,此時所有點的座標也旋轉相同的角度。
其他參考資料:https://www.cnblogs.com/ronny/p/3985810.html
三、區域描繪子
1.度量一個區域的緻密性的一個描繪子:
(周長)*(周長)/面積
圓度率:
一個區域的面積與具有相同周長的一個圓(最緻密的形狀)的面積之比。
周長爲P的一個圓的面積是:P*P/(4π),圓度率表示爲Rc:(就是說這個區域有多圓)
Rc = 4πA/(P*P)
2.拓撲描繪子
拓撲學研究一種圖像在沒有撕裂和連接的情況下(橡皮伸展變形),不受任何變形影響的性質。
(1)拓撲描繪子由區域內連通分量數來定義
(2)拓撲描繪子由歐拉數來定義 孔洞數H、連通分量的數目C、歐拉數E:
E=C-H
(3)拓撲網絡與歐拉數的關係
V-Q+F=C-H=E
(V頂點數、Q邊數、F面數)
3.紋理
(1)區域描繪的一種重要方法是量化其紋理內容
A、定義
紋理是由許多相互接近的、 互相編織的元素構成, 它們富有週期性。
紋理描繪子提供了對平滑度、粗糙度和規律性等特性的度量
B、紋理描繪子分類*(具體講解見雷剛薩斯P536)
a) 統計方法。(採用統計方法對紋理進行分析。)
b) 結構方法。(從圖像結構的觀點出發,則認爲紋理是結構,由紋理基元按一定規律排列而成。 採用句法結構方法。 )
c) 頻譜法。(分析紋理的頻域特徵)