skimage.measure.label函数

功能:实现连通区域标记

函数调用形式:

skimage.measure.label(input, neighbors = None, background = None, return_num = False, connectivity = None)[source]**

参数介绍:

Parameters:
input : Image to label 需要被标记的图片,输入的数据结构不作要求
neighbors : 这个参数将被移除,被下面的connectivity替代。可以忽略不看
background : 选择背景像素,指定像素作为背景,全部相同像素标记为0
return_num : 是一个bool值,如果为True的话返回值是一个元组(labelsnum );如果为False的话就只返回labels
connectivity : Maximum number of orthogonal hops to consider a pixel/voxel as a neighbor. Accepted values are ranging from 1 to input.ndim. If None, a full connectivity of input.ndim is used. [int, optional]。如果input是一个二维的图片,那么connectivity的值范围选择{1,2},如果是None则默认是取最高的值,对于二维来说,当connectivity=1时代表4连通,当connectivity=2时代表8连通.
Returns:
labels : 和input形状一样,但是数值是标记号,所以这是一个已经标记的图片
num : 标记的种类数,如果输出0则只有背景,如果输出2则有两个种类或者说是连通域

举例:

x=np.array([[1,0,0,0,0],[0,1,8,8,0],[0,0,1,1,8],[0,0,0,0,1]])
x
'''Out[109]: 
array([[1, 0, 0, 0, 0],
       [0, 1, 8, 8, 0],
       [0, 0, 1, 1, 8],
       [0, 0, 0, 0, 1]])'''
label(x,connectivity = 1, return_num=True)
'''Out[110]: 
(array([[1, 0, 0, 0, 0],
        [0, 2, 3, 3, 0],
        [0, 0, 4, 4, 5],
        [0, 0, 0, 0, 6]]), 6)'''
label(x,connectivity = 2, return_num=True)
'''Out[111]: 
(array([[1, 0, 0, 0, 0],
        [0, 1, 2, 2, 0],
        [0, 0, 1, 1, 2],
        [0, 0, 0, 0, 1]]), 2)'''
label(x,return_num=True)
'''Out[112]: 
(array([[1, 0, 0, 0, 0],
        [0, 1, 2, 2, 0],
        [0, 0, 1, 1, 2],
        [0, 0, 0, 0, 1]]), 2)'''

猜你喜欢

转载自blog.csdn.net/zz2230633069/article/details/85107971