邻域
label函数标记连通区域
默认以 4 邻域划分区域
from scipy.ndimage import label
import numpy as np
a = np.array([[0,0,1,1,0,0],
[0,0,0,1,0,0],
[1,1,0,0,1,0],
[0,0,0,1,0,0]])
labels, N = label(a)
print(labels)
'''
[[0 0 1 1 0 0]
[0 0 0 1 0 0]
[2 2 0 0 3 0]
[0 0 0 4 0 0]]
'''
print(N) # 4
修改邻域范围
# 默认是4邻域,即 stru=np.ones([2,2])
stru = np.ones([3,3]) # 修改为8邻域
bLab, bN = label(a, stru)
print(bLab)
‘'‘
[[0 0 1 1 0 0]
[0 0 0 1 0 0]
[2 2 0 0 1 0]
[0 0 0 1 0 0]]
'‘'
参考
Scipy(1)—— scipy.ndimage.label-CSDN博客
Python实现统计图像连通域的示例详解 - 老K博客 - 一个源码和技术分享的博客