Conversión de una imagen en color a blanco y negro

Si, por ejemplo, quisiéramos mostrar la imagen leída en blanco y negro, podemos transformar los canales R, G y B en un nuevo canal usando la siguiente fórmula:

Y' = 0.299 R + 0.587 G + 0.114 B

...(lo que podemos conseguir usando la función numpy.dot) y mostrando la imagen resultante con el mapa de color "gray":

fig, ax = plt.subplots()
fig.set_size_inches(8, 6)
img = plt.imread("https://www.interactivechaos.com/sites/default/files/data/sunset.png")
gray = np.dot(img[...,:3], [0.299, 0.587, 0.114])
plt.imshow(gray, cmap = 'gray')
plt.show()

Conversión de una imagen en color a blanco y negro