【问题标题】:Colors in grayscale image灰度图像中的颜色
【发布时间】:2020-11-11 07:26:20
【问题描述】:

我在 python (jupyter lab) 中使用 cv2 加载图像并尝试使用 plt.imshow 显示灰度图像。

import cv2
import matplotlib.pyplot as plt

img = cv2.imread('my_image.jpg')
new_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
gray = cv2.cvtColor(new_img, cv2.COLOR_RGB2GRAY)
plt.imshow(img)
plt.imshow(new_img)
plt.imshow(gray)

当上面的代码运行时会发生这种情况:

  • img 颜色失真(如预期)
  • new_img 具有“正确”的颜色
  • 灰色是一些奇怪的扭曲颜色

我的问题是关于灰色图像。为什么会发生这种情况,我该如何更改?

【问题讨论】:

标签: python opencv matplotlib jupyter-lab


【解决方案1】:

你有两个选择。继续使用 pyplot:

plt.imshow(gray, cmap='gray')

或者改为使用 openCV 的默认 imshow。

cv2.imshow('img', img)
cv2.imshow('new_img', new_img)
cv2.imshow('gray', gray)

【讨论】:

  • 我想 OP “奇怪的扭曲颜色”是由于 viridis 颜色映射,所以 `cmap='gray'` 应该可以解决问题。 cv2.imshow 需要完整的 OCV 命令(waitkey 等),在 Jupyter 中不是最佳选择。
  • 理想情况下,我会使用 cv2.imshow 但这在 Jupyterlab 中不起作用。我认为 plt.imshow(grey, cmap='gray') 是要走的路。非常感谢。
猜你喜欢
  • 2013-05-08
  • 1970-01-01
  • 2020-01-27
  • 1970-01-01
  • 1970-01-01
  • 2015-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多