En este escenario tenemos un array de imágenes que queremos mostrar en una matriz. Para ello recurrimos a la función plt.subplots, extraemos los ejes creados y asociamos cada imagen a un eje.
Comenzamos cargando los paths de las imágenes:
image_paths = glob("C:/Mis Imagenes/*jpg") # Cargamos los paths de las imágenes
A continuación cargamos las imágenes en el array images, convirtiéndolas (opcionalmente) en blanco y negro y redimensionándolas:
file_size = 256
def ImportImage(filename):
img = Image.open(filename).convert("LA").resize((file_size, file_size))
return np.array(img)[:,:,0]
images = np.array([ImportImage(img) for img in image_paths])
Por último definimos la función que crea los subplots:
def plotImages(images, nrows = 4, ncolumns = 4):
fig, axes = plt.subplots(nrows, ncolumns, figsize = (ncolumns * 3, nrows * 3))
axes = axes.flatten() # Listado plano de ejes
for img, ax in zip(images, axes):
ax.imshow(img, cmap="Greys_r") # Mostramos las imágenes en blanco y negro
ax.set_xticks(()) # Elimina los xticks
ax.set_yticks(()) # Elimina los yticks
plt.tight_layout() # Disposición estrecha
plotImages(images, 2, 3)
El resultado es el siguiente: