В массиве 2d-numpy есть несколько прямоугольных областей. Все прямоугольные области имеют значение 1, остальные области равны нулю. Я хочу извлечь минимальное количество прямоугольных связанных компонентов из массива numpy. Эти подключенные компоненты могут касаться друг друга в любом направлении.
Я попытался извлечь подключенные компоненты с помощью функции label
из scipy.ndimage.measurements
, но он назначает одну и ту же метку прямоугольникам, которые касаются друг друга.
Я также пробовал морфологическое раскрытие, но я не хочу терять первоначальную форму прямоугольника.
На рисунке показан ожидаемый результат для лучшего понимания проблемы. ![Expected output](https://i.stack.imgur.com/ell4z.png)
Есть ли лучший способ извлечь минимальное количество идеально прямоугольных областей?