Matplotlib: ¿Cuál es la función de cmap en imshow?

Estoy tratando de aprender opencv usando python y encontré este código a continuación:

import cv2
import numpy as np
from matplotlib import pyplot as plt

BLUE = [255,0,0]

img1 = cv2.imread('opencv_logo.png')
replicate = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_REPLICATE)
reflect = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_REFLECT)
reflect101 = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_REFLECT_101)
wrap = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_WRAP)
constant= cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_CONSTANT,value=BLUE)

plt.subplot(231),plt.imshow(img1,'gray'),plt.title('ORIGINAL')
plt.subplot(232),plt.imshow(replicate,'gray'),plt.title('REPLICATE')
plt.subplot(233),plt.imshow(reflect,'gray'),plt.title('REFLECT')

plt.subplot(234),plt.imshow(reflect101,'gray'),plt.title('REFLECT_101')
plt.subplot(235),plt.imshow(wrap,'gray'),plt.title('WRAP')
plt.subplot(236),plt.imshow(constant,'gray'),plt.title('CONSTANT')

plt.show()

fuente :http://docs.opencv.org/master/doc/py_tutorials/py_core/py_basic_ops/py_basic_ops.html#exercises

¿Qué hace plt.imshow (img1, 'gray')? Intenté buscar en Google y todo lo que pude entender fue que el argumento 'gris' era un mapa de Color. Pero mi imagen (foto está en el sitio. Ver enlace) no se muestra en escala de grises. Traté de eliminar el segundo argumento. Entonces el código era como plt.imshow (img1). Se ejecuta. La imagen permanece igual que antes. Entonces, ¿qué hace el segundo argumento 'gris'? ¿Alguien puede explicarme todo esto? Cualquier ayuda apreciada. Gracias.

PD. Soy totalmente nuevo en Matplotlib

Respuestas a la pregunta(1)

Su respuesta a la pregunta