¿Cómo mostrar una imagen usando Python?
1. matplotlib
1. Mostrar imágenes
Copiar código
importar mapplotlib py plot asplt # PLT se utiliza para mostrar imágenes. .
Importar maplotlib.image como mpimg # mpimg se usa para leer imágenes.
Importar numpy como np
Lena = mpimg.imread('lena.png') #Lea lena.png en el directorio donde se encuentra el código.
#lena ya es np.array, puedes manejarlo como quieras.
lena.shape #(512, 512, 3)
Plt.imshow(lena) #Mostrar imagen
Plt.axis('off') # Los ejes no se muestran.
plt.show()
Copiar código
2. Canal de visualización
Copiar código
#Display El primer canal de la imagen
lena_1 = lena
plt.imshow('lena_1 ')
plt.show()
#En este momento, encontrará que se muestra la imagen de calor en lugar de la imagen en escala de grises que esperábamos. Puede agregar parámetros de cmap, hay varias formas de agregarlos:
plt.imshow('lena_1 ',cmap='Greys_r ')
plt.show()
img = plt.imshow('lena_1 ')
Img.set_cmap('gray') # 'hot' es un mapa de calor.
plt.show()
Copiar código
3. Convertir imagen RGB a escala de grises
No existe una función adecuada en matplotlib Convert. Imagen RGB a imagen en escala de grises. Puedes 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.im show (Gray, cmap = PLT.get _ cmap ('Gris ')).
plt.imshow(gray, cmap='Greys_r ')
plt.axis("off")
plt.show()
Copiar código
4. Escala la imagen.
Usa Scipy aquí
Copiar código
Importar artículos varios de scipy
Lena _ new _ SZ = misc.imresize (Lena, 0.5) #Si el segundo parámetro es un número entero, es un porcentaje. Si es una tupla, es el tamaño de la imagen de salida.
plt.imshow(lena_new_sz)
plt.axis("off")
plt.show()
Copiar código
Guardar la imagen
5.1 Guarde la imagen dibujada por matplotlib.
Este método es adecuado para guardar cualquier imagen dibujada por matplotlib, lo que equivale a una captura de pantalla.
plt.imshow(lena_new_sz)
plt.axis("off")
' lena_new_sz.png ')
5.2 Guardar matriz como imagen
Importar misceláneos desde scipy
misc.imsave('lena_new_sz.png ', lena_new_sz)
5.3 Guardar matriz directamente
Después de leer, aún puede mostrar la imagen de la misma manera que mostraba la matriz antes, sin ninguna pérdida en la calidad de la imagen.
Np.save ('Lena _ new _ SZ ', Lena _ new _ SZ) #se agregará automáticamente. Guarde npy después del nombre.
img = NP . load(' Lena _ new _ SZ . npy ')#Leer la matriz previamente guardada.
Segundo, PIL
1. Mostrar imágenes
Importar imágenes desde PIL
im = Image.open('lena.png ' )
im.show()
2. Convierta la imagen PIL en una matriz numpy.
im_array = np.array(im)
# np.asarray(im) también funciona. La diferencia es que np.asarray() es una copia profunda, np. asarray() es una copia superficial.
Guardar fotos PIL
Llame directamente al método guardar de la clase Imagen.
Importar imágenes desde PIL
I = Image.open('lena.png ')
I.save('new_lena.png ')
4. Convierta una matriz numerosa en una imagen PIL.
Aquí, matplotlib.image se utiliza para leer la matriz de imágenes. Tenga en cuenta que la matriz leída aquí es de tipo float32, el rango es 0-1 y los datos de PIL. La imagen es de tipo uinit8 con un rango de 0 a 255, por lo que se requiere conversión:
Importar matplotlib.image como mpimg
Importar imagen desde PIL
Lena = mpimg .imread('lena.png') #Los datos leídos aquí son del tipo float32 y el rango de valores es 0-1.
im = image . from array(NP . ui nit 8(Lena * 255))
im.show()
5. image
Importar imágenes desde PIL
I = Image.open('lena.png ')
1. L = I.convert('L ')
L.show()