Bonjour, je suis nouveau dans le monde de Python et j'essaie d'enregistrer un tableau numpy 2d dans un fichier png.
Chaque élément de mon tableau numpy 2d est un entier entre 0 ~ 100, et j'ai un getColor()
pour le convertir en valeurs rgb. Pour l'instant, je construis un tableau numpy à 3 canaux de la même forme que mon tableau numpy 2d, et je convertis chaque valeur en valeur rgb correspondante. Cependant, cela prend beaucoup de temps et je pense qu'il devrait y avoir un moyen beaucoup plus efficace de le faire. Mon code prend actuellement environ 5 secondes pour traiter une image.
import numpy as np
import imageio
flt_m = get2dArray() # returns a (880*880) numpy array
def getColor(value):
if(value < 0):
return (0,0,0)
elif(value < 50):
return (100,150,200)
else:
return (255,255,255)
canvas = np.zeros((flt_m.shape[0], flt_m.shape[1], 3)).astype(np.uint8)
for row in range(flt_m.shape[0]):
for col in range(flt_m.shape[1]):
rgb = getColor(flt_m[row, col])
for i in range(3):
canvas[row, col, i] = rgb[i]
imageio.imwrite('test.png', canvas) # saves file to png