Изображения не конвертируются в оттенки серого - PullRequest
4 голосов
/ 27 мая 2020

Я прочитал все изображения в папке через OpenCV. Затем преобразовав в шкалу серого, используя pyplot, я показал все изображения. Но вместо изображений в градациях серого цвета выглядят как желтые sh.

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)

Пример вывода:

enter image description here

Что мне делать, чтобы преобразовать их в правильные изображения в градациях серого?

1 Ответ

4 голосов
/ 27 мая 2020

Это происходит потому, что Matplotlib использует цветовую карту при построении одиночного канала. В их документах есть утверждение:

Входные данные могут быть либо фактическими данными RGB (A), либо двумерными скалярными данными, которые будут отображаться как псевдоцветное изображение . Примечание. Для фактического отображения изображения в градациях серого настройте отображение цветов с помощью параметров cmap='gray', vmin=0, vmax=255.

Итак, измените последнюю строку на:

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

Это построит канал с использованием серого отображения.

...