四連通,和八連通的詳解(MATLAB)


轉至:http://www.cnblogs.com/xiaojidan/archive/2012/08/20/2647261.html

功能:標注二進制圖像中已連接的部分。
語法:L = bwlabel(BW,n) [L,num] = bwlabel(BW,n)

其中BW為輸入圖像;N可取值為4或8表示連接四連通或八連通區域;NUM為找到的連通區域數目;L為輸出圖像矩陣,其元素值為整數,背景被標記為0,第一個連通區域被標記為1,第二個連通區域被標記為2,依此類推.所以你不明白的1,2,3即為第1,2,3個連通區域的標記。例子:

(1):

A=[0 1 1 0 1 0 1

  0 1 1 0 0 0 1

  0 1 1 0 1 0 1];

[L,M]=bwlabel(A,4);    

此時L=[0 1 1 0 2 0 4
     0 1 1 0 0 0 4
     0 1 1 0 3 0 4]  ,  M=4

(2):

A=[0 1 1 0 0 0 1

    0 1 1 0 0 0 1

    0 1 1 0 0 0 1];

[L,M]=bwlabel(A,4);

L=[0 1 1 0 0 0 2
   0 1 1 0 0 0 2
   0 1 1 0 0 0 2], M=2;

(3):

A=[0 1 1 0 0 0 1

  0 1 1 0 0 0 1

  0 1 1 0 1 0 1];

[L,M]=bwlabel(A,4);

L=[0 1 1 0 0 0 3
   0 1 1 0 0 0 3
   0 1 1 0 2 0 3]   M=3

解釋:四連通區域是這樣的:     1
                                   1  0  1
                                       1
以上的0代表中心像素點所在的位置就是四連通區域。也就是0的上向左右四個點。
八連通區域是:1  1  1
       1  0  1
                  1  1  1
也就是除了上下左右以外還有左上角右上角左下角右下角四個位置。
八連通區域包含了四連通區域,所以說四連通的話肯定八連通的。

M說明了A中有多少個連通區域,L則把這些連通區域用數字表示出來,相同的數字表示同一個區域,例(1)中有4個連通區域,其中,L矩陣中的1代表第一個連通區域,即在A中對應像素點是屬於第一個連通區域,L中的2,3,4有類似的意思。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM