Pilow
Imagen a partir de una matriz
Cuando creamos por primera vez una imagen mediante Pilow lo primero que pensé fue que poco interés tenía la cosa; cuando sobre esa base unimos dos imágenes para componer una tercera, ya me pareció más interesante y a la vista del interés que tiene para la descomposición de la imagen en colores parece que el tema va ganando en interés. Añado ahora una razón más para valorar positivamente la creación de imágenes en Pilow.
from PIL import Imageimport numpy as np#Crear array de basearray_base = np.zeros([550,750,3], dtype = np.uint8)#Agregar coloresarray_base[:,0:300] = [255,128,0]array_base[:,300:] = [0,0,255]#Crear la imagen a partir del arregloimg_array = Image.fromarray(array_base)#Mostrar la imagen creadaimg_array.show()
Mediante este script he creado una sencilla imagen a partir de datos numéricos organizados en una matriz tridimensional (array_base = np.zeros([550,750,3], dtype = np.uint8)) mediante la función np.zeros(), que recibe como primer parámetro una tupla con tres valores: ancho, alto y 3 canales de color como tercer dimensión.
Los dos primeros, además de definir el tamaño de la matriz, también nos sirven como referencias necesarias para concretar las posiciones de las diferentes configuraciones de color que compondrán la imagen final...
vg. array_base[:,0:300] = [255,128,0]
... atribuye al primer elemento la posición 0-0 a 0:300 (ejes x-y) y como color asignado la tupla [R.G.B] [255,128,0].
Posteriormente se construye la imagen a partir de esos datos mediante el método fromarray() que recibe como parámetro la variable imagen (img_array = Image.fromarray(array_base)).
from PIL import Imageimport numpy as np#Crear array de basearray_base = np.zeros([550,750], dtype = np.uint8)#Agregar grisesarray_base[:,0:300] = [50]array_base[:,300:] = [235]#Crear la imagen a partir del arregloimg_array = Image.fromarray(array_base)#Mostrar la imagenimg_array.show()
Puedes apreciar el cambio en la construcción del array (ahora array_base = np.zeros([550,750], dtype = np.uint8)) y en el procedimiento para agregar el color (vg array_base[:,0:300] = [50]). El resto es igual.





