MATLAB---matlab 中的bwlabel函数

来源:互联网 发布:植物常见病虫害软件 编辑:程序博客网 时间:2024/03/29 21:15
用法:
L = bwlabel(BW,n)
       返回一个和BW大小相同的L矩阵,包含了标记了BW中每个连通区域的类别标签,这些标签的值为1、2、num(连通区域的个数)。n的值为4或8,表示是按4连通寻找区域,还是8连通寻找,默认为8。

       四连通或八连通是图像处理里的基本感念:8连通,是说一个像素,如果和其他像素在上、下、左、右、左上角、左下角、右上角或右下角连接着,则认为他们是联通的;4连通是指,如果像素的位置在其他像素相邻的上、下、左或右,则认为他们是连接着的,连通的,在左上角、左下角、右上角或右下角连接,则不认为他们连通。

[L,num] = bwlabel(BW,n)
       其中BW为输入图像;N可取值为4或8表示连接四连通或八连通区域;NUM为找到的连通区域数目,就是BW中连通区域的个数;L为输出图像矩阵,其元素值为整数,背景被标记为0,第一个连通区域被标记为1,第二个连通区域被标记为2,依此类推.所以你不明白的1,2,3即为第1,2,3个连通区域的标记


举例说明:
BW =
    1     1     1     0     0     0     0     0
    1     1     1     0     1     1     0     0
    1     1     1     0     1     1     0     0
    1     1     1     0     0     0     1     0
    1     1     1     0     0     0     1     0
    1     1     1     0     0     0     1     0
    1     1     1     0     0     1     1     0
    1     1     1     0     0     0     0     0

按4连通计算,方形的区域,和翻转的L形区域,有用是对角连接,不属于连通,所以分开标记,连通区域个数为3 

 L = bwlabel(BW,4)


结果如下:(其中L矩阵中显示的1,2,3表示第1,2,3个连通区域的标记
L =
    1     1     1     0     0     0     0     0
    1     1     1     0     2     2     0     0
    1     1     1     0     2     2     0     0
    1     1     1     0     0     0     3     0
    1     1     1     0     0     0     3     0
    1     1     1     0     0     0     3     0
    1     1     1     0     0     3     3     0
    1     1     1     0     0     0     0     0
这里num=3

而8连通标记,它们是连通的:


[L, num] = bwlabel(BW,8)


结果如下:(其中L矩阵中显示的1,2,3表示第1,2,3个连通区域的标记
L =
    1     1     1     0     0     0     0     0
    1     1     1     0     2     2     0     0
    1     1     1     0     2     2     0     0
    1     1     1     0     0     0     2     0
    1     1     1     0     0     0     2     0
    1     1     1     0     0     0     2     0
    1     1     1     0     0     2     2     0
    1     1     1     0     0     0     0     0

这里  num = 2

原创粉丝点击