图像无法转换为灰度色彩

4

我通过OpenCV读取了一个文件夹中的所有图像。然后将它们转换为灰度图,并使用 pyplot 显示所有图像。但是,显示出来的灰度图看起来带有黄色。

import glob
import cv2
import matplotlib.pyplot as plt
from skimage.color import rgb2gray

images = [cv2.imread(file) for file in glob.glob(r"C:\Users\USER\Handcrafted dataset/*.jpg")]
for img in images:
    img = rgb2gray(img)
    plt.figure(figsize=(10,10))
    plt.imshow(img)

示例输出:

在这里输入图片描述

我应该怎么做才能将它们转换为适当的灰度图像?

1个回答

5
这是因为当绘制单通道时,Matplotlib使用了一种颜色映射。在它们的文档中有这样一句话:

输入可以是实际的RGB(A)数据,也可以是2D标量数据, 将呈现为伪彩色图像。注意:要实际显示灰度图像,请使用参数 cmap='gray'vmin=0vmax=255设置颜色映射。

所以请将您的最后一行更改为:
plt.imshow(img, cmap='gray')

这将使用灰度映射绘制通道。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接