我有以下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)


image - plt.imshow在IPython中显示灰度图像的彩色图像-LMLPHP

我将其转换为灰度图像imGray

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

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

#plotting
plt.imshow(imGray)


image - plt.imshow在IPython中显示灰度图像的彩色图像-LMLPHP



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

最佳答案

imRGB是3D矩阵(高度x宽度x 3)。
现在,imGray是2D矩阵,其中没有颜色,只有“发光度”值。
因此,matplotlib默认情况下应用了颜色表。

阅读this page并尝试应用灰度色图或其他色图,检查结果。

plt.imshow(imGray, cmap="gray")


this page as reference用于颜色图。某些颜色图无法工作,如果发生,请尝试其他颜色图。

10-01 10:45