图像未转换为灰度

imt*_*nan 4 python opencv matplotlib colormap

我已经通过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)
Run Code Online (Sandbox Code Playgroud)

示例输出:

在此输入图像描述

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

Leo*_*iga 5

发生这种情况是因为 Matplotlib 在绘制单个通道时使用颜色图。在他们的文档中有一个声明说:

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

因此,将最后一行更改为:

plt.imshow(img, cmap='gray')
Run Code Online (Sandbox Code Playgroud)

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