Convertir un array de NumPy en una imagen PIL en Python
- Convertir un array NumPy en una imagen PIL en Python
- Convertir un array NumPy en una imagen PIL Python con el Colormap Matplotlib
Este tutorial explica cómo podemos convertir el array NumPy en una imagen PIL
usando la Image.fromarray()
del paquete PIL
. La Librería de Imágenes de Python (PIL
) es una librería en Python con varias funciones de procesamiento de imágenes.
La función Image.fromarray()
toma el objeto array como entrada y devuelve el objeto imagen hecho del objeto array.
Convertir un array NumPy en una imagen PIL en Python
import numpy as np
from PIL import Image
image = Image.open("lena.png")
np_array = np.array(image)
pil_image = Image.fromarray(np_array)
pil_image.show()
Producción:
Leerá la imagen lena.png
en el directorio de trabajo actual usando el método open()
de la Image
y devolverá un objeto de la imagen.
Luego convertimos este objeto de la imagen en un array NumPy usando el método numpy.array()
.
Usamos la función Image.fromarray()
para convertir el array de nuevo en el objeto de imagen PIL
y finalmente mostramos el objeto de imagen usando el método show()
.
import numpy as np
from PIL import Image
array = np.random.randint(255, size=(400, 400), dtype=np.uint8)
image = Image.fromarray(array)
image.show()
Producción:
Aquí, creamos un array NumPy de tamaño 400x400
con números aleatorios que van de 0
a 255
y luego convertimos el array en un objeto “Imagen” usando la función Image.fromarray()
y mostramos la imagen usando el método show()
.
Convertir un array NumPy en una imagen PIL Python con el Colormap Matplotlib
import numpy as np
from PIL import Image
import matplotlib.pyplot as plt
from matplotlib import cm
image_array = plt.imread("lena.jpg")
image_array = image_array / 255
image = Image.fromarray(np.uint8(cm.plasma(image_array) * 255))
image.show()
Producción:
Aplica el mapa de colores de plasma
del paquete Matplotlib
. Para aplicar un mapa de color a una imagen, primero normalizamos el array con un valor máximo de 1
. El valor máximo del elemento en image_array
es 255
en el ejemplo anterior. Así que dividimos el image_array
por 255 para la normalización.
Luego aplicamos el mapa de colores a la image_array
y lo multiplicamos por 255
de nuevo. Luego, convertimos los elementos al formato int
usando el método np.uint8()
. Finalmente, convertimos el array en la imagen usando la función Image.fromarray()
.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn