Определение смежных областей в двумерном массиве numpy

у меня есть большой массив numpy , к которому я применил фильтр. Я хотел бы выделить смежные области в этом замаскированном массиве. Здесь я определяю область как смежную, если для любого индекса (x1, y1) к любому другому индексу (x2, y2) они принадлежат той же области, если там представляет собой путь Истинных значений вдоль равных целочисленных шагов по осям (диагонали - допустимые шаги).

Это может быть не так ясно, как простая картина. Учитывая маску:

0010000
0100000
0110000
0000011
1000010

Должны быть идентифицированы три региона, чтобы результат был примерно таким, как

[ [[0,2],[1,1],[2,1],[2,2]], [[3,5],[3,6],[4,5]], [[4,0]] ]

Я бы хотел использовать что-то встроенное в numpy , не прибегая к написанию моего собственного Flood Алгоритм заполнения . Небольшое исследование документации дало только 1D версию того, о чем я прошу.

13
задан Hooked 25 February 2012 в 03:28
поделиться