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

标签 image opencv matplotlib ipython jupyter-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)

imRGB

我将其转换为灰度图像 imGray

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

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

#plotting
plt.imshow(imGray)

imGray

<小时/>

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

最佳答案

imRGB 是一个 3D 矩阵(高 x 宽 x 3)。
现在 imGray 是一个 2D 矩阵,其中没有颜色,只有“亮度”值。 因此 matplotlib 默认应用颜色图。

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

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

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

关于image - plt.imshow 在 IPython 中显示灰度图像的彩色图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52825613/

相关文章:

opencv - 多 channel 矩阵/阵列

python - Matplotlib.pyplot : force exponential axis label notation

php - 外部图像漏洞

swift - 如何在 cocoa NSView 中设置背景图片

c++ - OpenCV:如何绘制一条线,其颜色相对于应绘制的表面相反?

python - Matplotlib 使用一组特定数据点绘制等高线图

ipython (jupyter) 笔记本中的动画 - ValueError : I/O operation on closed file

c++ - 可使用不同目录中的图像执行

java - 从 pdf 中获取页面并使用 itext 将其保存为图像文件

c++ - 在 ubuntu 中编译的 Opencv 应用程序无法在 redhat "symbol lookup error"中运行