2016-12-21 177 views
-3

我有以下的RGB图像imRGBplt.imshow显示IPython中为灰度图像彩色图像

import cv2 
import matplotlib.pyplot as plt 

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

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

#plotting 
plt.imshow(imRGB) 

imRGB

我将它转换为灰度图像imGray

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

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

#plotting 
plt.imshow(imGray) 

imGray


问:为什么灰度图像imGray显示在颜色?

回答

2

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

阅读this page并尝试应用灰度色彩地图或不同的色彩地图,检查结果。

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

对于色差映射使用this page as reference。某些色彩映射无法工作,如果发生尝试另一个色彩映射。

相关问题