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 是一个二维矩阵,其中没有颜色,只有“亮度”值。 所以 matplotlib 默认应用颜色图。

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

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

使用this page as reference对于颜色图。一些颜色图无法工作,如果它发生尝试另一个颜色图。

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

相关文章:

c - 使用 OpenCv 应用灰度

python - 如何删除颜色条

matplotlib - 属性错误: 'module' object has no attribute 'to_rgba'

python - 使用 Python 绘制庞加莱截面

css - 在响应式 div 中限制图像(Bootstrap 4)

java - java中使用ECC加密图像

python - 使用 pyglet 加载图像将一些透明像素变成白色

javascript - 为什么我的图像与我的其他图像 HTML 不对齐

python - 将预测保存到 json 或 txt 文件,并在 yolov3 对象检测中保存输出视频文件 - Google colab

c++ - 将 cv::Mat vector 复制到 float vector 的最佳方法是什么?