連通區域標記 行程掃瞄演算法

2022-08-16 18:27:20 字數 1230 閱讀 5508

1.連通域

對於一幅影象來說,它的基本組成單元是畫素,每乙個畫素又對應乙個灰度值.

聯通區域標記針對的是二值影象,二值影象顧名思義就是它的灰度值只存在兩種值---0或255的影象,乙個連通區域指的是影象中那些位置相鄰,灰度值相同的畫素集合所組成的區域.

畫素和畫素之間的鄰域關係有4鄰域和8鄰域,4鄰域指的是當前畫素的上下左右位置處的畫素,8鄰域是指上下左右和對角線位置處的畫素.

如右圖所示,分別對應的是畫素的4鄰域和8鄰域位置關係

(x,y-1)

(x-1,y)

(x,y)

(x+1,y)

(x,y+1)

4鄰域(x-1,y-1)

(x,y-1)

(x+1,y-1)

(x-1,y)

(x,y)

(x+1,y)

(x-1,y+1)

(x,y+1)

(x+1,y+1)

8鄰域2.連通區域標記方法

1)基於行程的標記

a.逐行掃瞄影象,將一行中連續的白色畫素組成的序列成為乙個團,並記下它的起點和終點,以及它所在的行號.

b.對於除了第一行外的所有行裡的團,如果它與前一行的所有團都沒有重疊的區域,則給它標記乙個新的標號;如果它僅與上一行的乙個團有重疊,則將上一行那個團的標號賦給它;如果它與上一行的兩個以上的團有重疊,則將幾個團中最小的那個標號賦給它,並將這幾個標號寫入等價對中,說明它們屬於同乙個區域.

c.將等價對轉換為等價序列,且每一串行需要給予同乙個標號,因為它們均是等價的.從1開始,給每乙個等價序列乙個標號.

d.遍歷開始團的標記,查詢等價序列,賦予它們新的標號.

e.將每乙個團的標記填入影象中

f.結束

結合上面影象對行程掃瞄演算法進行說明

第一行,得到兩個團[2,6]和[10,13],同時給它們標記1和2.

第二行,得到兩個團[6,7]和[9,10],它們和上一行的兩個團均有重疊,所以,用上一行的團號進行標記為1和2.

第三行,兩個團[2,4]和[7,8],[2,4]和上一行沒有重疊,所以,賦予它乙個新的標號3,[7,8]和上一行中的兩個團均有重疊,所以,賦予它兩個團號中較小的那個,即為1,同時,將[1,2]寫入等價對.

全部影象遍歷完畢之後,我們得到很多個團的起始座標,結束座標以及它們所在的行和標號.同時,我們還得到了乙個等價對列表.

skimage標記連通區域用法喲

threshold src,bbig 屬性名稱 型別描述 area int區域內畫素點總數 bbox tuple 邊界外接框 min row,min col,max row,max col centroid array 質心座標 convex area int凸包內畫素點總數 convex imag...

python連通區域計算長度 連通區域演算法小結

聯通區域標記 connected component labeling 是影象處理裡面常用的乙個技術,它是用來檢測二值影象中聯通的區域,在許多跟蹤檢測演算法中充當目標區域檢測的作用。常見的ccl connected component labeling 包括two pass的方法和one pass的...

寒江雪 區域填充演算法 掃瞄線

區域填充遞迴演算法已經領教過了。記憶體消耗大,時間效率低,經典的深搜思想。為了解決這個問題,於是有人提出了種子填充掃瞄線演算法。其實就是深搜不行,換寬搜 bfs 該演算法假設已知其中乙個畫素點,然後從這個畫素點出發,去尋找周圍可以著色的點。這個已知點,我們稱其為種子點。每一輪著色之後,記錄下著色的區...