OpenCV dando cores incorretas às imagens coloridas ao carregar

Estou carregando uma imagem colorida no Python OpenCV e plotando o mesmo. No entanto, a imagem que recebo tem cores misturadas.

Aqui está o código:

import cv2
import numpy as np
from numpy import array, arange, uint8 
from matplotlib import pyplot as plt


img = cv2.imread('lena_caption.png', cv2.IMREAD_COLOR)
bw_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

images = []
images.append(img)
images.append(bw_img)

titles = ['Original Image','BW Image']

for i in xrange(len(images)):
    plt.subplot(1,2,i+1),plt.imshow(images[i],'gray')
    plt.title(titles[i])
    plt.xticks([]),plt.yticks([])

plt.show()

Aqui está a imagem original:

E aqui está a imagem plotada:

questionAnswers(2)

yourAnswerToTheQuestion