Guardar array NumPy como imagen en Python

Manav Narula 30 enero 2023
  1. Utilice la función Image.fromarray() para guardar un array numerosa como una imagen
  2. Utilice la función imageio.imwrite() para guardar un array numerosa como una imagen
  3. Utilice la función matplotlib.pyplot.imsave() para guardar un array numerosa como una imagen
  4. Utilice la función cv2.imwrite() para guardar un array numerosa como una imagen
Guardar array NumPy como imagen en Python

En Python, el módulo numpy se usa para trabajar con matrices. Hay muchos módulos disponibles en Python que nos permiten leer y almacenar imágenes.

Las imágenes se pueden considerar como un array de diferentes píxeles almacenados en posiciones específicas con los respectivos códigos de color. Por lo tanto, podemos encontrar situaciones en las que necesitemos convertir y guardar un array como una imagen.

En este tutorial, discutiremos cómo guardar un array numpy como una imagen.

Utilice la función Image.fromarray() para guardar un array numerosa como una imagen

La función fromarray() se utiliza para crear una memoria de imagen a partir de un objeto que exporta el array. Luego, podemos guardar esta memoria de imagen en la ubicación deseada proporcionando la ruta requerida y el nombre del archivo.

Por ejemplo,

import numpy as np
from PIL import Image

array = np.arange(0, 737280, 1, np.uint8)
array = np.reshape(array, (1024, 720))

im = Image.fromarray(array)
im.save("filename.jpeg")

Primero creamos un array que almacena códigos de color RGB y luego los exportamos. Podemos especificar el formato deseado de nuestra imagen en el nombre del archivo. Puede ser jpeg, png o cualquier otro formato de imagen de uso común. Esto es común para todos los métodos que se describen a continuación.

Utilice la función imageio.imwrite() para guardar un array numerosa como una imagen

Anteriormente, el módulo scipy tenía la función imsave() para guardar matrices numpy como imágenes. Sin embargo, en versiones recientes, quedó obsoleto y la función imwrite() de image.io() comenzó a recomendarse para realizar esta tarea y ganó popularidad por su simplicidad.

El siguiente código muestra cómo utilizar esta función.

import imageio
import numpy as np

array = np.arange(0, 737280, 1, np.uint8)
array = np.reshape(array, (1024, 720))

imageio.imwrite("filename.jpeg", array)

Utilice la función matplotlib.pyplot.imsave() para guardar un array numerosa como una imagen

El módulo matplotlib tiene una variedad de funciones disponibles para trabajar con imágenes.

La función imsave() puede guardar un array como un archivo de imagen.

Por ejemplo,

import matplotlib.pyplot as plt
import numpy as np

array = np.arange(0, 737280, 1, np.uint8)
array = np.reshape(array, (1024, 720))

plt.imsave("filename.jpeg", array)

Utilice la función cv2.imwrite() para guardar un array numerosa como una imagen

El módulo OpenCV se utiliza a menudo para el procesamiento de imágenes en Python. La función imwrite() de este módulo puede exportar un array numerosa como un archivo de imagen.

Por ejemplo,

import cv2
import numpy as np

array = np.arange(0, 737280, 1, np.uint8)
array = np.reshape(array, (1024, 720))

cv2.imwrite("filename.jpeg", array)
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn