plt.imshow显示了IPython中灰度图像的彩色图像

aki*_*t90 2 opencv image matplotlib ipython ipython-notebook

我有以下RGB图像 imRGB

import cv2
import matplotlib.pyplot as plt

#Loading the RGB image
imRGB = cv2.imread('*path*')

imRGB.shape
>>(128L, 128L, 3L)

#plotting
plt.imshow(imRGB)
Run Code Online (Sandbox Code Playgroud)

imRGB

我将其转换为灰度图像 imGray

imGray = cv2.cvtColor(imRGB, cv2.COLOR_BGR2GRAY)

imGray.shape
>>(128L, 128L)

#plotting
plt.imshow(imGray)
Run Code Online (Sandbox Code Playgroud)

imGray


问题:为什么灰度图像imGray以彩色显示?

mar*_*esk 10

imRGB是一个3D矩阵(高x宽x 3).
现在imGray是一个2D矩阵,其中没有颜色,只有"光度"值.所以matplotlib默认应用了一个colormap.

阅读此页面并尝试应用灰度色彩图或不同的色彩图,检查结果.

plt.imshow(imGray, cmap="gray")
Run Code Online (Sandbox Code Playgroud)

使用此页面作为色彩映射的参考.某些色彩图无法使用,如果发生,请尝试使用其他色彩映射.