bwlabel()
用处
一般用在图像区域的分割,比如人脸区域与其他肤色区域分割开
用法
L = bwlabel(BW,n)
返回一个和BW大小相同的L矩阵,包含了标记了BW中每个连通区域的类别标签,这些标签的值为1、2…num(连通区域的个数)。n的值为4或8,表示是按4连通寻找区域,还是8连通寻找,默认为8。
8连通:是说一个像素,如果和其他像素在上、下、左、右、左上角、左下角、右上角或右下角连接着,则认为他们是联通的;
4连通是指,如果像素的位置在其他像素相邻的上、下、左或右,则认为他们是连接着的,连通的,在左上角、左下角、右上角或右下角连接,则不认为他们连通。
注意:在8连通中,只有一个像素的上、下、左、右、左上角、左下角、右上角、右下角其中一个位置有像素,则认为它们是连通的,属于一块区域。满足其中一个位置即可,比如只有左边有像素,这样也是算连通的。同理,4连通也是,满足上、下、左、右其中一个位置有像素即可
[L,num] = bwlabel(BW,n)
num返回的就是BW中连通区域的个数,可以理解成一幅图像中可以分成几块连通区域。
举例说明
MATLAB代码
结果
解释
上面矩阵a若用4连通分,则可以分成4个区域,若用8连通分,则可以分成3个区域。
结果中的数字代表的是区域的序号。