opencv将图像转换为灰度,并使用matplotlib显示会产生奇怪的颜色

时间:2018-09-14 14:25:25

标签: opencv matplotlib

使用opencv加载图像,转换为灰度并使用matplotlib进行绘制时,我看到了一个奇怪的地方:

from matplotlib import pyplot as plt
import argparse
import cv2

image = cv2.imread("images/image1.jpg")
image = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)
plt.imshow(image)

就这么简单。

但是它给出了如下的“灰度”图:

有什么问题吗?非常感谢! enter image description here

1 个答案:

答案 0 :(得分:4)

OpenCV按BGR顺序读取图像,因此您应该转换

image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

第二,您看到的是Matplotlib将图像强度显示为热图。只需将所需的颜色图传递到其cmap参数

plt.imshow(image, cmap=plt.cm.gray)