你的星团看起来很明显是分开的,所以只要把它们长一点来融合它们的部分。例如,您可以使用scipy.ndimage.morphology.binary_dilation:from scipy.ndimage import measurements, morphology
import numpy as np
# create mock data
data = """
1111 1 1
1 1
1 11111
111111 111
1
1
"""
data = np.array(data.split('\n'))
data = data.view('U1').reshape(len(data), -1) == '1'
# blow it up a bit
data = np.kron(data, np.ones((2, 2), dtype=int))
# "algorithm" starts here
grow = morphology.binary_dilation(data, structure=np.ones((5, 5), dtype=int)
lbl, npatches = measurements.label(grow)
lbl[data==0] = 0
# end of algorithm
# show
res = '\n'.join(lbl.astype('U1').view(f"U{lbl.shape[1]}").ravel()).replace('0', ' ')
print(res)
输出:
^{pr2}$
如果它不能直接作用于您的实际数据,请尝试使用不同的结构元素或简单地扩大倍数。在