У меня есть большой массив numpy
, на который я применил фильтр. Я хотел бы идентифицировать смежные области в этом масках. Здесь я определяю область, которая должна быть смежной, если для любого индекса (x1,y1)
для любого другого индекса (x2,y2)
они принадлежат к одной и той же области, если есть путь к значениям True
вдоль равных целых шагов по осям (диагонали являются действительными шагами).Определить смежные области в массиве 2D numpy
Это может быть не так ясно, как простая фотография. Учитывая маску:
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 version того, что я прошу.