Предполагается, что вы назначаете каждую метку только один раз: матрица с эксцентричным блобом будет иметь больше пустых строк, чем пустой столбец или наоборот.
labels = [2,3,7] # or whatever you have
good_labels = []
for label in labels:
m = matrix == label
non_empty_columns = sum(sum(m)>0)
non_empty_rows = sum(sum(m.transpose())>0)
if 1.0 * non_empty_rows / (non_empty_columns+0.001) > threshold:
good_labels.append(label)
Это удалит очень длинные (вертикально) капли, превратит строкии колонны вокруг, чтобы удалить горизонтально растянутые капли.