Mostrando una imagen

La función utilizada para mostrar una imagen es matplotlib.pyplot.imshow, función que acepta como primer argumento una variable con estructura de array (o imagen PIL):

Creemos un array a mano para ver cómo lo muestra la función:

a = np.array([0, 64, 128, 255]).reshape(2, 2)
plt.imshow(a, cmap = "gray");

La función plt.imshow

Si con el mapa de colores "gray" que estamos usando, los valores 0 se muestran en negro y los valores 255 en blanco, comprobamos que la función plt.imshow muestra los valores leídos (antes de ejecutar el reshape) de izquierda a derecha y de arriba hacia abajo:

La función plt.imshow

Hagamos otra prueba, esta vez con un array de 5x4 píxels:

a = np.linspace(0, 255, 20).reshape(5, 4)
a

Array

Tal y como hemos definido el array, los valores se incrementan de izquierda a derecha y de arriba abajo:

plt.imshow(a, cmap = "gray");

La función plt.imshow()

...y efectivamente los puntos se muestran más claros hacia la derecha y hacia abajo.

Mostremos entonces la imagen que habíamos leído:

fig, ax = plt.subplots()
fig.set_size_inches(8, 6)
img = plt.imread("https://www.interactivechaos.com/sites/default/files/data/sunset.png")
plt.imshow(img)
plt.show()

Imagen leída