Salvar array NumPy como imagem em Python

Manav Narula 30 janeiro 2023
  1. Use a função Image.fromarray() para salvar um NumPy Array como uma imagem
  2. Use a função imageio.imwrite() para salvar uma NumPy Array como imagem
  3. Use a função matplotlib.pyplot.imsave() para salvar um array numpy como imagem
  4. Use a função cv2.imwrite() para salvar uma NumPy Array como imagem
Salvar array NumPy como imagem em Python

Em Python, o módulo numpy é usado para trabalhar com matrizes. Existem muitos módulos disponíveis em Python que nos permitem ler e armazenar imagens.

As imagens podem ser pensadas como um array de pixels diferentes armazenados em posições específicas com respectivos códigos de cores. Portanto, podemos encontrar situações em que precisamos converter e salvar um array como uma imagem.

Neste tutorial, discutiremos como salvar um array numpy como uma imagem.

Use a função Image.fromarray() para salvar um NumPy Array como uma imagem

A função fromarray() é usada para criar uma memória de imagem de um objeto que exporta o array. Podemos então salvar essa memória de imagem em nosso local desejado, fornecendo o caminho necessário e o nome do arquivo.

Por exemplo,

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")

Primeiro criamos um array que armazena códigos de cores RGB e depois os exportamos. Podemos especificar o formato desejado de nossa imagem no nome do arquivo. Pode ser jpeg, png ou qualquer outro formato de imagem comumente usado. Isso é comum para todos os métodos discutidos a seguir.

Use a função imageio.imwrite() para salvar uma NumPy Array como imagem

Anteriormente, o módulo scipy tinha a função imsave() para salvar matrizes numpy como imagens. No entanto, em versões recentes, ficou obsoleto e a função imwrite() da image.io() começou a ser recomendada para realizar esta tarefa e ganhou popularidade pela sua simplicidade.

O código a seguir mostra como usar essa função.

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)

Use a função matplotlib.pyplot.imsave() para salvar um array numpy como imagem

O módulo matplotlib possui uma variedade de funções disponíveis para trabalhar com imagens.

A função imsave() pode salvar um array como um arquivo de imagem.

Por exemplo,

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)

Use a função cv2.imwrite() para salvar uma NumPy Array como imagem

O módulo OpenCV é freqüentemente usado para processamento de imagens em Python. A função imwrite() deste módulo pode exportar um array numpy como um arquivo de imagem.

Por exemplo,

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