У меня есть большой массив numpy
, на который я применил фильтр. Я хотел бы идентифицировать смежные области в этом масках. Здесь я определяю область, которая должна быть смежной, если для любого индекса (x1,y1)
для любого другого индекса (x2,y2)
они принадлежат к одной и той же области, если есть путь к значениям True
вдоль равных целых шагов вдоль осей ( диагонали являются действительными шагами).
Это может быть не так ясно, как простая картина. С учетом маски:
0010000
0100000
0110000
0000011
1000010
Должны быть определены три области, так что вывод будет похож на
[ [[0,2],[1,1],[2,1],[2,2]], [[3,5],[3,6],[4,5]], [[4,0]] ]
Я хотел бы использовать что-то встроенное в numpy
, не прибегая к написанию моего собственного алгоритма Flood Fill. Немногие исследования в документах только показали 1D версию того, что я прошу.