Как узнать тип изображения matlab

Этот вопрос может быть очень простым, но, пожалуйста, со мной.

Когда я использую imread в matlab и читаю изображение, как бы я знал, будет ли его rgb, серая шкала или единичная программно?  Ваша помощь очень ценится. Я попробовал поиск в Интернете, но не знаю, какое слово или фразу я должен ввести, чтобы посмотреть, как именно Ват ищет. Заранее спасибо. кто-нибудь может запрограммировать ссылку или соответствующий термин, что было бы действительно полезно.

I1 = imread('sample_image.jpg');

как я могу узнать, что такое тип I1 перед любым преобразованием?

1 ответ

Вы можете использовать imfinfo для получения информации о файле изображения перед его загрузкой:

info = imfinfo('sample_image.jpg');
info.ColorType % e.g. 'grayscale', 'truecolor', 'indexed'
info.BitDepth % e.g. 8, 16

Вы также можете посмотреть раздел справки по imread, чтобы узнать, какой класс вывода будет использоваться для разных типов файлов. Проблема заключается в определении разницы между полутоновым изображением и индексированным цветным файлом - они будут иметь одинаковый размер и класс. В этом случае вам нужно предварительно проверить ColorType и загрузить цветную карту при просмотре изображения:

[I, map] = imread(filename)

licensed under cc by-sa 3.0 with attribution.