示例代码:
import numpy as np
from skimage import measure
list0 = [0,0,0,0,2,0,0,3,0,0,0,0,3,3,0,0,0,0,3,0,0,0,0,0,0,3,0,0,0,0,3,3,0,0,0,0]
testa0 = np.array(list0).reshape(6,6)+1 #0会被忽略掉,但是我这里会要使用,所以+1
testa1 = measure.label(testa0, connectivity = 2)#8连通
testa2 = measure.label(testa0, connectivity = 1)#4连通
#如果想分别对每一个连通区域进行操作,比如计算面积、外接矩形、凸包面积等,则需要调用#measure子模块的regionprops()函数
props = measure.regionprops(testa1)
numPix = []
for ia in range(len(props)):
numPix += [props[ia].area]
#像素最多的连通区域及其指引
maxnum = max(numPix)
index = numPix.index(maxnum)
#最大连通区域的bounding box
minr, minc, maxr, maxc = props[index].bbox#[minr, maxr),[minc, maxc)
#最大连通区域中的原始值
classPlat = testa0[minr,minc]-1
print(props[index].bbox)
print(classPlat)
可以自行输出每步的结果查看
skimage.measure.regionprops(label_image)
属性名称 | 类型 | 描述 |
---|