Cómo mostrar imágenes en Python
1. matplotlib
1. Mostrar imágenes
Copiar código
importar matplotlib.pyplot como plt # plt se utiliza para mostrar imágenes.
importar matplotlib.image como mpimg # mpimg se usa para leer imágenes
importar numpy como np
lena = mpimg.imread('lena.png') # Lee lena.png en el mismo directorio que el código
# En este momento lena ya es una matriz np.array, por lo que puedes hacer lo que quieras con él
lena. forma #(512, 512, 3)
plt.imshow(lena) #Mostrar imagen
plt.axis('off') #No mostrar el eje de coordenadas
plt.show()
Copiar código
2. Mostrar un canal
Copiar código
# Mostrar la imagen El primer canal
lena_1 = lena
plt.imshow('lena_1) # Muestra el segundo canal de la imagen
plt.show('off' ) # No mostrar el eje de coordenadas
plt.imshow('lena_1')
plt.show()
# En este momento, encontraremos que Lo que se muestra es Heatmap, en lugar de la imagen en escala de grises que esperábamos, puede agregar el parámetro cmap, hay varias formas de agregarlo:
plt.imshow('lena_1', cmap='Greys_r')
plt.show()
img = plt.imshow('lena_1')
img.set_cmap('gray') # 'caliente' es una eliminatoria map
plt.show()
Copiar código
3. Convertir RGB a escala de grises
No existe una función adecuada en matplotlib para convertir gráficos RGB Para convertir a escala de grises, puede personalizar uno según la fórmula:
Copiar código
def rgb2gray(rgb):
return np.dot (rgb[.. .,:3], [0.299, 0.587, 0.114])
gray = rgb2gray(lena)
# También puedes usar plt.imshow(gray, cmap = plt.get_cmap ('gray'))
plt.cmap='Greys_r')
plt.axis('off')
plt. show() p>
Copiar código
4. Escalar la imagen
Aquí es donde entra scipy
Copiar código
from scipy import misc
lena_new_sz = misc.imresize(lena, 0.5) # Si es un número entero, el segundo parámetro es un porcentaje, si es una tupla, el segundo parámetro es el tamaño; de la imagen de salida
plt.imshow(lena_new_sz)
plt.axis('off')
plt.show()
Copiar código
5. Guardar imagen
<p>5.1 Guardar imágenes dibujadas por matplotlib
Este método es adecuado para guardar cualquier imagen dibujada por matplotlib, lo que equivale a tomar una captura de pantalla. 3 Guarde la matriz directamente
Después de leer la matriz, aún puede mostrar la imagen de la misma manera que la matriz, sin pérdida de calidad de la imagen<
np.save(' lena_new_sz.png')
misc.imave('lena_new_sz.png')
5.save('lena_new_sz', lena_new_sz) # Agregar automáticamente .npy al nombre guardado p>
img = np.load('lena_new_sz.npy') # Leer la matriz previamente guardada
2. PIL
1. >desde PIL importar imagen
im = Image.open('lena.png')
im.show()
2. array
im_array = np.array(im )
# También puedes usar np.
I = Image.open('lena.png')
I.save('new_lena.png')
4. Convertir matriz numpy a imagen PIL
Aquí usamos matplotlib.image para leer la imagen. formación. tipo float32, el rango es 0-1 y PIL. Los datos de imagen son del tipo uinit8, el rango es 0-255, por lo que se requiere conversión:
importar matplotlib.Image como mpimg
I = Image.open('new_lena.png')
I.save('new_lena.png')
5.image como mpimg
de importación PIL Image
lena = mpimg.imread('lena.png') # Los datos leídos aquí son de tipo float32, el rango es 0-1
im = Image.fromarray(np. uinit8(lena*255))
im.show()
5.RGB a escala de grises
desde imagen de importación PIL
I = Imagen.open('lena.png')
I.show()
L = I.convert('L')
L.show()
6.