Возможное решение заключается в использовании анализа подключенных компонентов, выполненного таким образом
from scipy.ndimage.measurements import label
structure = np.ones((3, 3), dtype=np.int)
labeled, ncomponents = label(Z, structure)
indices = np.indices(Z.shape).T[:,:,[1, 0]]
for i in range(1,ncomponents):
pixelcount = (np.sum(labeled==i))
xs = indices[labeled==i][:,0]
ys = indices[labeled==i][:,1]
area = (np.max(xs)-np.min(xs)+2)*(np.max(ys)-np.min(ys)+1)
if (pixelcount/area<1):
pass
labeled[labeled==i] = 0
plt.figure(1)
plt.imshow(labeled,cmap='jet')
, где в конце я проверяю соотношение между пикселем в данной подключенной области, деленное на количество пикселей / площадь области, поэтомутаким образом можно контролировать соотношение между пикселями и общей площадью