Я не уверен, как работает imfill
.Это так:
import numpy as np
import scipy.ndimage.morphology as morphology
bw = np.array([[0, 0, 0, 0, 0, 0, 0, 0],
[0, 1, 1, 1, 1, 1, 0, 0],
[0, 1, 0, 0, 0, 1, 0, 0],
[0, 1, 0, 0, 0, 1, 0, 0],
[0, 1, 0, 0, 0, 1, 0, 0],
[0, 1, 1, 1, 1, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0]])
print(morphology.binary_fill_holes(bw).astype('int'))
выход
[[0 0 0 0 0 0 0 0]
[0 1 1 1 1 1 0 0]
[0 1 1 1 1 1 0 0]
[0 1 1 1 1 1 0 0]
[0 1 1 1 1 1 0 0]
[0 1 1 1 1 0 0 0]
[0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0]]
Если это так, вы можете посмотреть на пакет морфологии Сципи .