Cómo mostrar una imagen en escala de grises en Matplotlib
-
matplotlib.pyplot.imshow()
para mostrar una imagen en escala de grises en Matplotlib - Ejemplos: La imagen de la pantalla Matplotlib en escala de grises
Para mostrar una imagen en escala de grises usando Matplotlib, usamos el matplotlib.pyplot.imshow
con los parámetros cmap
en 'gray'
, vmin
en 0
y vmax
en 255
.
matplotlib.pyplot.imshow()
para mostrar una imagen en escala de grises en Matplotlib
matplotlib.pyplot.imshow(X,
cmap=None,
norm=None,
aspect=None,
interpolation=None,
alpha=None,
vmin=None,
vmax=None,
origin=None,
extent=None,
shape= < deprecated parameter > ,
filternorm=1,
filterrad=4.0,
imlim= < deprecated parameter > ,
resample=None,
url=None,
*,
data=None,
**kwargs)
Ejemplos: La imagen de la pantalla Matplotlib en escala de grises
import matplotlib.pyplot as plt
import matplotlib.image as img
image = img.imread("lena.jpg")
plt.imshow(image[:, :, 1], cmap="gray", vmin=0, vmax=255, interpolation="none")
plt.show()
Resultado:
Este método lee la imagen lena.jpg
, que es una imagen RGB que utiliza la función imread()
del módulo matplotlib.image
. Para mostrar la imagen en escala de grises, sólo necesitamos un canal de color. Por lo tanto, para el siguiente paso, sólo toma un único canal de color y muestra la imagen usando el método plt.imshow()
con cmap
en 'gray'
, vmin
en 0
, y vmax
en 255
.
Finalmente, usamos el método show()
para mostrar una ventana que muestra la imagen en escala de grises. Para ejecutar el script anterior, debemos tener lena.jpg
en nuestro directorio de trabajo actual.
Tomar un solo canal de color no es una forma apropiada de convertir imágenes RGB en imágenes en escala de grises porque tenemos algoritmos específicos para hacer la conversión más eficiente. Estos algoritmos están implementados en casi todas las librerías populares de procesamiento de imágenes disponibles. A continuación, demostramos un ejemplo usando la PIL
.
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
image = Image.open("lena.jpg")
gray_image = image.convert("L")
gray_image_array = np.asarray(gray_image)
plt.imshow(gray_image_array, cmap="gray", vmin=0, vmax=255)
plt.show()
Resultado:
Aquí, leemos la imagen lena.jpg
en nuestro directorio de trabajo actual usando la función open()
y luego convertimos la imagen a escala de grises usando el método convert()
con 'L'
como argumento. Después de eso, convertimos la imagen en escala de grises en un array NumPy y mostramos la imagen usando el método imshow()
.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn