skimage函数记录之measure.label和measure.regionprops

这两个函数可以用来处理图(一般是二值图)中出现的连通区域,我们来分别分析。

一.skimage.measure.label(inputbackground = None, return_num = False, connectivity = None)

功能:标记中的连通区域 

参数解释:input:输入二值图
                  background:指定北京元素像素值,默认为0
                  return_num:bool变量,True:返回(label,num)False:只返回label
                  connectivity:1:4邻接,计算上下左右4个方向 2:8邻接,计算周围8个方向,None默认取最高

返回值:
labels : 和input形状一样,但是数值是标记号,所以这是一个已经标记的图片
num : 标记的种类数,如果输出0则只有背景,如果输出n则有n个连通域

PS:什么叫做连通域,在二值图像中,如果两个像素点相邻且值相同(同为0或1),称这两个像素点在一个相互连通的区域内,这种关系存在传递性,我们用相同的值来标记同一个连通区域的所有像素。常见的邻接关系有2种:4邻接与8邻接。4邻接一共4个点,上下左右,8邻接的点包括周围8个,下图所示

例:

x=np.array([[1,0,0,0,0],[0,1,7,7,0],[0,0,1,1,9],[0,0,0,0,1]])
x
'''Out[109]: 
array([[1, 0, 0, 0, 0],
       [0, 1, 7, 7, 0],
       [0, 0, 1, 1, 9],
       [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)'''

二.skimage.measure.regionprops(label_image, intensity_image = None, cache = True)[source]

参数解释:label_image:已经被标记好的输入图片
                  intensity_image:强度图,每个通道的像素值
                  cache:是否开启缓存,开启能加快计算速度
返回值:area    (int)                             区域内像素点总数
              bbox    (tuple)                        边界外接框(min_row, min_col, max_row, max_col)
              centroid    (array)                  质心坐标
              convex_area (int)                   凸包内像素点总数
              convex_image    (ndarray)     和边界外接框同大小的凸包
              coords    (ndarray)                 区域内像素点坐标
              Eccentricity     (float)              离心率
              equivalent_diameter(float)     和区域面积相同的圆的直径
              euler_number    (int)        区域欧拉数
              extent     (float)                      区域面积和边界外接框面积的比率
              filled_area    (int)                    区域和外接框之间填充的像素点总数 
              perimeter     (float)                  区域周长
              label    (int)                             区域标记

 PS:标注部分为常用部分,其中要注意返回的centroid,x,y坐标与图像中的x轴,y轴有所差异。


版权声明:本文为qq_41368074原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。