Mostrar uma imagem em escala de cinzentos em Matplotlib
-
matplotlib.pyplot.imshow()
para Mostrar uma Imagem em Escala de Cinza em Matplotlib - Exemplos: Matplotlib Mostrar imagem em escala de cinzentos
Para mostrar uma imagem em escala de cinzentos em Matplotlib, utilizamos o matplotlib.pyplot.imshow()
com parâmetros cmap
definidos para 'gray'
, vmin
definidos para 0
e vmax
definidos para 255
.Por defeito o valor de cmap
, vmin
e vmax
está definido para None
.
matplotlib.pyplot.imshow()
para Mostrar uma Imagem em Escala de Cinza em 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)
Exemplos: Matplotlib Mostrar imagem em escala de cinzentos
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 lê a imagem lena.jpg
, que é uma imagem RGB utilizando a função imread()
do módulo matplotlib.image
. Para exibir a imagem como escala de cinzentos, só precisamos de um canal de cor. Por isso, para o passo seguinte, basta tomar um único canal de cor e mostrar a imagem utilizando o método plt.imshow()
com cmap
definido para 'gray'
, vmin
definido para 0
, e vmax
definido para 255
.
Finalmente, utilizamos o método show()
para mostrar uma janela mostrando a imagem em escala de cinzentos. Para executar o script acima, temos de ter lena.jpg
no nosso directório de trabalho actual.
Tomar apenas um canal de cor não é uma forma apropriada de converter imagens RGB em imagens em escala de cinzentos, porque temos algoritmos específicos para tornar a conversão mais eficiente. Estes algoritmos são implementados em quase todas as bibliotecas populares de processamento de imagem disponíveis. Abaixo, demonstramos um exemplo utilizando o 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:
Aqui, lemos a imagem lena.jpg
no nosso directório de trabalho actual utilizando a função open()
e depois convertemos a imagem para escala de cinzentos utilizando o método convert()
com 'L'
como argumento. Depois disso, convertemos a imagem em escala de cinzentos num array NumPy e exibimos a imagem utilizando o método imshow()
.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn