Почему я получаю изображение all-black/grayscale, когда я загружаю этот PNG в MATLAB?

Когда я выполняю этот код:

>> I = imread('D:\Works\matlab\SecCode.php.png','png');
>> imshow(I);

Это всегда показывает полностью черное изображение. Что случилось с ним?

Изображение, которое я использую, является этим:

enter image description here

9
задан gnovice 11 September 2018 в 11:39
поделиться

1 ответ

Ааа, теперь понятно. Проблема в том, что у вас индексированное изображение и вам нужно получить аргумент colormap из imread а. Попробуйте сделать так:

[I, map] = imread('D:\Works\matlab\SecCode.php.png', 'png');
imshow(I, map);

Описание различных типов изображений в MATLAB можно найти здесь. Вот краткое резюме:

  • Двоичные изображения: Изображение представляет собой логический массив, где каждый пиксель имеет значение 0 или 1.
  • Индексированные изображения: Пиксели изображения хранят индексы в цветовой карте, которая представляет собой массив M-by-3 значений RGB. Цветовая карта часто хранится вместе с индексированным изображением в файле изображения.
  • Интенсивные (градации серого) изображения: Каждый пиксель изображения содержит одно значение, представляющее интенсивность.
  • RGB (Truecolor) изображения: Изображение представляет собой массив M-by-N-by-3, где каждый пиксель имеет красный, зеленый и синий цветовые компоненты.
12
ответ дан 3 November 2019 в 00:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: