Creación de matriz de imágenes

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:

Creación de matriz de imágenes