Matlab中bwlabe函数l 下载本文

内容发布更新时间 : 2024/5/24 4:04:41星期一 下面是文章的全部内容请认真阅读。

bwlabel

图像处理函数详解——bwlabel功能:对连通对象进行标注,bwlabel主要对二维二值图像中各个分离部分进行标注(多维用bwlabeln,用法类似)。

用法:L = bwlabel(BW,n)

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

L = bwlabel(BW,n)表示返回和BW相同大小的数组L。L中包含了连通对象的标注。参数n为4或8,分别对应4邻域和8邻域,默认值为8。

[L,num] = bwlabel(BW,n)返回连通数num。 bwlabel用法:

L = bwlabel(BW,n)

返回一个和BW大小相同的L矩阵,包含了标记了BW中每个连通区域的类别标签,这些标签的值为1、2、num(连通区域的个数)。n的值为4或8,表示是按4连通寻找区域,还是8连通寻找,默认为8。

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

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

这里num返回的就是BW中连通区域的个数。

补充:我听说过16连通,这应该是在三维空间里的概念了吧。

举例说明:

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 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

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

.

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

L =

1 1 1 0 0 0 0 1 1 1 0 2 2 0 1 1 1 0 2 2 0 1 1 1 0 0 0 2 1 1 1 0 0 0 2 1 1 1 0 0 0 2 1 1 1 0 0 2 2 1 1 1 0 0 0 0 这里 num = 2

0 0 0 0 0 0 0 0