Как я могу максимально быстро манипулировать значениями каждого региона в маске, содержащей несколько регионов?Python

Программы на Python
Anonymous
Как я могу максимально быстро манипулировать значениями каждого региона в маске, содержащей несколько регионов?

Сообщение Anonymous »


Итак, я работаю над этапом обработки модели сегментации для локализации текста.

Итак, для упрощенных вопросов. Ниже я сделал несколько изображений:
[*]Маска (значения каждой области отмечены «1», а остальные ячейки серого цвета по умолчанию имеют значение «0») (1)

Изображение


Итак, я хочу что-то сделать, чтобы добраться до этого тензора, где каждая область теперь имеет значение суммирования всех его значений. Целевой тензор — изображение ниже (2)
[*]Цель

Изображение


Вопрос: существует ли метод, который делает то, что мне нужно, в матричном стиле (для более быстрого вычисления) или с помощью некоторых связанных ключевых слов для подобных задач?

Что я пробовал: я пробовал использовать координаты метки для цикла с findContours() OpenCV, но я не знаю, что это лучшая практика для такого рода манипулирование задачей.

Для воспроизведения массива:

импортировать numpy как np маска = np.array([[1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0], [1,0, 1,0, 1,0, 1,0, 0,0, 1,0, 1,0, 0,0], [1,0, 1,0, 1,0, 1,0, 0,0, 1,0, 1,0, 1,0], [0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 1,0, 1,0], [0,0, 1,0, 1,0, 1,0, 0,0, 0,0, 0,0, 0,0], [0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0]], dtype=np.float32) (Изменить: добавить массив numpy для воспроизводимости)

Вернуться в «Python»