Почему при загрузке этого PNG-файла в MATLAB я получаю полностью чёрное / полутоновое изображение? - PullRequest
9 голосов
/ 06 апреля 2010

Когда я запускаю этот код:

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

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

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

enter image description here

1 Ответ

12 голосов
/ 06 апреля 2010

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

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

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

  • Двоичные изображения : Изображение представляет собой массив logical, где каждый пиксель имеет значение 0 или 1.
  • Проиндексированные изображения : Пиксели в изображении сохраняют индексы в цветовой карте, которая представляет собой массив значений RGB размером 3 на 3. Цветовая карта часто сохраняется с индексированным изображением в файле изображения.
  • Изображения интенсивности (в оттенках серого) : каждый из пикселей на изображении содержит одно значение, представляющее интенсивность.
  • Изображения RGB (Truecolor) : изображение представляет собой массив размером M × N на 3, где каждый пиксель имеет компонент красного, зеленого и синего цвета. 1037 *
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...