У меня странная проблема.
Есть изображение, и мне нужно пересчитать только ненулевые пиксели. И я хочу сделать это через numpy
, так как я обрабатываю тысячи изображений и мне нужно, чтобы это было быстро.
Вот упрощенный пример с меньшей размерностью.
Допустим, у меня есть следующая матрица:
[[0, 0, 1],
[0, 2, 0],
[0, 6, 0]]
и скажем, я хочу умножить каждое значение на 2.0
и добавить 0.5
.
matrix = matrix * 2.0 + 0.5
Результат:
[[0.5, 0.5, 2.5],
[0.5, 4.5, 0.5],
[0.5, 12.5, 0.5]]
И я хочу, чтобы это было:
[[0, 0, 2.5],
[0, 4.5, 0],
[0, 12.5, 0]]
Очевидно, я могу просто сделать это в цикле for
с if pixel == 0: continue
, но это будет очень медленно. И я не могу избавиться от добавления, оставляющего только компонент нормализации.
Так что мне было интересно, это можно сделать через numpy
?